XSLT新手,无法使用Google找到答案。
我需要编写一个基于现有XSLT的新XSLT,他们使用的XSLT< ext:根据我的理解在生成的XML中添加新标签。
我在哪里可以找到对此的解释?
这是好习惯吗?
这是XSLT的一部分:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ax="http://schemas.microsoft.com/dynamics/2008/01/documents/Message" xmlns:purchaserequisition="http://schemas.microsoft.com/dynamics/2008/01/documents/PurchaseRequisition" xmlns:ext="IgepaFormat" version="1.0" exclude-result-prefixes="ext ax purchaserequisition">
<xsl:output method="xml" encoding="ISO-8859-1" version="1.0" standalone="yes" indent="yes" omit-xml-declaration="no" />
<xsl:namespace-alias stylesheet-prefix="ext" result-prefix="#default" />
<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:template match="ax:Envelope">
<xsl:for-each select="ax:Body/ax:MessageParts/purchaserequisition:PurchaseRequisition">
<ext:ORDERS>
<ext:Envelop>
<ext:RecordType>ENV</ext:RecordType>
<ext:OrderHeader>
<ext:OrderNumber>
<ext:BuyerOrderNumber>
<xsl:value-of select="purchaserequisition:VendPurchOrderJour/purchaserequisition:PurchId" />
</ext:BuyerOrderNumber>
<ext:ListOfMessageID>
<ext:MessageID>
<ext:IDNumber>
<xsl:value-of select="purchaserequisition:VendPurchOrderJour/purchaserequisition:PurchId" />
</ext:IDNumber>
<ext:IDAssignedBy>
<IDAssignedByCoded>1</IDAssignedByCoded>
</ext:IDAssignedBy>
</ext:MessageID>
</ext:ListOfMessageID>
</ext:OrderNumber>
答案 0 :(得分:1)
您需要阅读XML“命名空间”
ext:
是名称空间前缀。如果你查看样式表的第一行,你应该看到这个声明
xmlns:ext="IgepaFormat"
因此,元素<ext:ORDERS>
表示ORDERS元素属于命名空间“IgepaFormat”。注意,在这种情况下,前缀“ext”是任意的。名称空间URI非常重要。
关于命名空间,这不是一个好的做法问题。如果您输出的XML需要它们,则使用它们(例如,使用您生成的XML的应用程序要求元素位于特定命名空间中)
上阅读的一个潜在链接