我是XSLT的新手,命名空间有问题。这是我必须转换的XML:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://www.softomat.bg/myapp/esb/ServiceOrderToTechnicalOrderTransformer">
<soapenv:Header/>
<soapenv:Body>
<InputRequestID>?</InputRequestID>
<InputTimeStamp>?</InputTimeStamp>
<OrderInput>
<Recipient>?</Recipient>
<PortInFlag>?</PortInFlag>
<Donor>?</Donor>
<FMCFirstCompleteFlag>?</FMCFirstCompleteFlag>
<CreatedOn>?</CreatedOn>
<ACSBillingAccountIntegId>?</ACSBillingAccountIntegId>
<OrderType>?</OrderType>
<OrderReason>?</OrderReason>
<CustomerFirstName>?</CustomerFirstName>
<CustomerName>?</CustomerName>
<AgreementNum>?</AgreementNum>
<AgreedbyOwner>?</AgreedbyOwner>
<OriginalReceived>?</OriginalReceived>
<AgreementSignDate>?</AgreementSignDate>
<BusinessContactFirstName>?</BusinessContactFirstName>
<BusinessContactLastName>?</BusinessContactLastName>
<UserID>?</UserID>
<FMCMNPRequestId>?</FMCMNPRequestId>
<LegalContactFirstName>?</LegalContactFirstName>
<LegalContactLastName>?</LegalContactLastName>
<CreatedBy>?</CreatedBy>
<Comments>?</Comments>
<IntegrationID>?</IntegrationID>
<OrderId>?</OrderId>
<ReferenceOrder>?</ReferenceOrder>
<Status>?</Status>
<OrderTypeProvisioningRelevant>?</OrderTypeProvisioningRelevant>
<TriggerScript>?</TriggerScript>
<OrderSource>?</OrderSource>
<CustomerSegment>?</CustomerSegment>
<CustomerSubsegment>?</CustomerSubsegment>
<CustomerIdNumber>?</CustomerIdNumber>
<CustomerIdType>?</CustomerIdType>
<Priority>?</Priority>
<CustomerCode>?</CustomerCode>
<Urgent>?</Urgent>
<SalesPersonEmail>?</SalesPersonEmail>
<NotificationPhoneNumber>?</NotificationPhoneNumber>
<NotificationEmail>?</NotificationEmail>
<ASAP>?</ASAP>
<CustomerNotificationChannel>?</CustomerNotificationChannel>
<OrderCreatorEmail>?</OrderCreatorEmail>
<PrevCustomerRef>?</PrevCustomerRef>
<VIPFlag>?</VIPFlag>
</OrderInput>
</soapenv:Body>
</soapenv:Envelope>
我正在使用以下XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ser="http://www.softomat.bg/myapp/esb/ServiceOrderToTechnicalOrderTransformer" version="2.0">
<xsl:output method="xml" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://bre-sc/ServiceOrderToTechnicalOrderTransformer">
<soapenv:Body>
<ser:ServiceOrderToTechnicalOrderTransformerRequest>
<xsl:copy-of select="soapenv:Envelope/soapenv:Body/OrderInput" />
</ser:ServiceOrderToTechnicalOrderTransformerRequest>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
结果是:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://bre-sc/ServiceOrderToTechnicalOrderTransformer">
<soapenv:Body>
<ser:ServiceOrderToTechnicalOrderTransformerRequest>
<OrderInput **xmlns:ser="http://www.softomat.bg/myapp/esb/ServiceOrderToTechnicalOrderTransformer"**>
<Recipient>
?
</Recipient>
<PortInFlag>
?
</PortInFlag>
<Donor>
?
</Donor>
<FMCFirstCompleteFlag>
?
</FMCFirstCompleteFlag>
<CreatedOn>
?
</CreatedOn>
<ACSBillingAccountIntegId>
?
</ACSBillingAccountIntegId>
<OrderType>
?
</OrderType>
<OrderReason>
?
</OrderReason>
<CustomerFirstName>
?
</CustomerFirstName>
<CustomerName>
?
</CustomerName>
<AgreementNum>
?
</AgreementNum>
<AgreedbyOwner>
?
</AgreedbyOwner>
<OriginalReceived>
?
</OriginalReceived>
<AgreementSignDate>
?
</AgreementSignDate>
<BusinessContactFirstName>
?
</BusinessContactFirstName>
<BusinessContactLastName>
?
</BusinessContactLastName>
<UserID>
?
</UserID>
<FMCMNPRequestId>
?
</FMCMNPRequestId>
<LegalContactFirstName>
?
</LegalContactFirstName>
<LegalContactLastName>
?
</LegalContactLastName>
<CreatedBy>
?
</CreatedBy>
<Comments>
?
</Comments>
<IntegrationID>
?
</IntegrationID>
<OrderId>
?
</OrderId>
<ReferenceOrder>
?
</ReferenceOrder>
<Status>
?
</Status>
<OrderTypeProvisioningRelevant>
?
</OrderTypeProvisioningRelevant>
<TriggerScript>
?
</TriggerScript>
<OrderSource>
?
</OrderSource>
<CustomerSegment>
?
</CustomerSegment>
<CustomerSubsegment>
?
</CustomerSubsegment>
<CustomerIdNumber>
?
</CustomerIdNumber>
<CustomerIdType>
?
</CustomerIdType>
<Priority>
?
</Priority>
<CustomerCode>
?
</CustomerCode>
<Urgent>
?
</Urgent>
<SalesPersonEmail>
?
</SalesPersonEmail>
<NotificationPhoneNumber>
?
</NotificationPhoneNumber>
<NotificationEmail>
?
</NotificationEmail>
<ASAP>
?
</ASAP>
<CustomerNotificationChannel>
?
</CustomerNotificationChannel>
<OrderCreatorEmail>
?
</OrderCreatorEmail>
<PrevCustomerRef>
?
</PrevCustomerRef>
<VIPFlag>
?
</VIPFlag>
</OrderInput>
</ser:ServiceOrderToTechnicalOrderTransformerRequest>
</soapenv:Body>
我试图删除结果输入顺序中的名称空间,但它不适合我。有人能帮我学习XSLT吗?谢谢
这可以通过如下对样式表进行微小更改来实现。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ser1="http://bre-sc/ServiceOrderToTechnicalOrderTransformer"
xmlns:ser="http://www.softomat.bg/myapp/esb/ServiceOrderToTechnicalOrderTransformer">
<soapenv:Body>
<ser:ServiceOrderToTechnicalOrderTransformerRequest>
<xsl:copy-of select="soapenv:Envelope/soapenv:Body/OrderInput" />
</ser:ServiceOrderToTechnicalOrderTransformerRequest>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
</xsl:stylesheet>
我已将xmlns:ser移动到
<soapenv:Envelope
xmlns:ser="http://www.softomat.bg/myapp/esb/ServiceOrderToTechnicalOrderTransformer"
xmlns:ser1="http://bre-sc/ServiceOrderToTechnicalOrderTransformer"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ser:ServiceOrderToTechnicalOrderTransformerRequest>
<OrderInput>
<Recipient>?</Recipient>
<PortInFlag>?</PortInFlag>
<Donor>?</Donor>
<FMCFirstCompleteFlag>?</FMCFirstCompleteFlag>
<CreatedOn>?</CreatedOn>
<ACSBillingAccountIntegId>?</ACSBillingAccountIntegId>
<OrderType>?</OrderType>
<OrderReason>?</OrderReason>
<CustomerFirstName>?</CustomerFirstName>
<CustomerName>?</CustomerName>
<AgreementNum>?</AgreementNum>
<AgreedbyOwner>?</AgreedbyOwner>
<OriginalReceived>?</OriginalReceived>
<AgreementSignDate>?</AgreementSignDate>
<BusinessContactFirstName>?</BusinessContactFirstName>
<BusinessContactLastName>?</BusinessContactLastName>
<UserID>?</UserID>
<FMCMNPRequestId>?</FMCMNPRequestId>
<LegalContactFirstName>?</LegalContactFirstName>
<LegalContactLastName>?</LegalContactLastName>
<CreatedBy>?</CreatedBy>
<Comments>?</Comments>
<IntegrationID>?</IntegrationID>
<OrderId>?</OrderId>
<ReferenceOrder>?</ReferenceOrder>
<Status>?</Status>
<OrderTypeProvisioningRelevant>?</OrderTypeProvisioningRelevant>
<TriggerScript>?</TriggerScript>
<OrderSource>?</OrderSource>
<CustomerSegment>?</CustomerSegment>
<CustomerSubsegment>?</CustomerSubsegment>
<CustomerIdNumber>?</CustomerIdNumber>
<CustomerIdType>?</CustomerIdType>
<Priority>?</Priority>
<CustomerCode>?</CustomerCode>
<Urgent>?</Urgent>
<SalesPersonEmail>?</SalesPersonEmail>
<NotificationPhoneNumber>?</NotificationPhoneNumber>
<NotificationEmail>?</NotificationEmail>
<ASAP>?</ASAP>
<CustomerNotificationChannel>?</CustomerNotificationChannel>
<OrderCreatorEmail>?</OrderCreatorEmail>
<PrevCustomerRef>?</PrevCustomerRef>
<VIPFlag>?</VIPFlag>
</OrderInput>
</ser:ServiceOrderToTechnicalOrderTransformerRequest>
</soapenv:Body>
</soapenv:Envelope>
我有这个xml是架构版本3.0http://www.test.com/Service/v3。我需要将其降级到版本1http://www.test.com/Service/v1.为此,我使用XSL来转换它。 但我得到这样的结果 在我的输出XML中,我得到了这个 为什么将其添加到NS2:消息中? 它不在输入xml中。 我遗漏了一些东西。如果有人能指出这个问题,我将不胜感激。 我希望在输出中创建以下内容
我试图用XSLT处理器在PHP中转换xml文档,但我无法选择任何内容。。。我认为这是一个名称空间问题。如果我从一个干净的<代码> inputxml: Xsl-file: 我无法更改输入文件,因为它是由其他程序生成的。 安德烈
我需要一个简单的xslt,它接受输入并提供如下所述的输出。我已经编写了xslt,但名称空间被忽略了。你能帮我一下吗。 输入消息: 预期输出消息: 实际输出消息: XSLT:
我试图将Excel xml文件的一部分呈现为超文本标记语言,以便在翻译(外语翻译)计算机辅助翻译工具中的部分内容时改进预览。 我有以下xml: 我试图从每行中提取第二个数据元素并显示它,但我根本无法显示它。我认为这与名称空间有关,我肯定遗漏了什么,但看不出是什么。这就是我正在使用的: 有人能帮我吗? 我应该补充一点,我正在使用Treebeard来测试这个,它用这些错误验证xml(我无法控制)...
我正在尝试创建一个XSLT文件,我可以让它工作,而无需在任何一个文件中包含名称空间,但只要我在其中包含名称空间,它就会停止工作。以下是我正在使用的示例。 我的XML文件 我的转换文件。 我的结果 如果我将上述内容更改为此,则不会。我的新XML文件 我的新转换文件。 我现在在转换后的文件中没有数据了?如果这个问题是基本的,请原谅,我没有XSLT的经验,目前我正努力解决这个问题。
XSLT示例: 这里有一个名称空间xmlns:xslnsv=”http://sample2.2“当我们有一个具有相同命名空间的xml时,它就工作了 产生输出: 但问题是:我们有一些具有不同命名空间ie的XMLhttp://sample2.1具有不同命名空间的示例xml 那么我们就没有正确的输出。 我修改了xslt以动态更改名称空间。带有新更改的xslt示例 在我看来,它可以更改名称空间,但不能在更