g_e*_*ard 7 xml xslt xml-namespaces
我有这个XML消息:
<Orders xmlns="http://AU.InputOrders">
<Order>
<OrderRef>D04004451</OrderRef>
<ABN>9780571244461</ABN>
<OrderQty>1</OrderQty>
</Order>
<Order>
<OrderRef>D04004451</OrderRef>
<ABN>9780571254057</ABN>
<OrderQty>1</OrderQty>
</Order>
<Order>
<OrderRef>D04004452</OrderRef>
<ABN>9781864489545</ABN>
<OrderQty>1</OrderQty>
</Order>
</Orders>
Run Code Online (Sandbox Code Playgroud)
这个XSLT 1.0:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://AU.InputOrders">
<xsl:output method="xml" encoding="utf-8" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
<xsl:element name="Orders" namespace="http://AU.OutputOrders">
<xsl:apply-templates select="ns0:Orders/ns0:Order[1]" />
</xsl:element>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:copy-of select="@*" />
<xsl:apply-templates select="node()" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
上面的XSLT给出了以下输出:
<Orders xmlns="http://AU.OutputOrders"><Order xmlns="">
<OrderRef>D04004451</OrderRef>
<ABN>9780571244461</ABN>
<OrderQty>1</OrderQty>
</Order></Orders>
Run Code Online (Sandbox Code Playgroud)
这几乎是我需要的,但我不想在Order节点之后使用xlmns ="".
我想要的是这个:
<Orders xmlns="http://AU.OutputOrders"><Order>
<OrderRef>D04004451</OrderRef>
<ABN>9780571244461</ABN>
<OrderQty>1</OrderQty>
</Order></Orders>
Run Code Online (Sandbox Code Playgroud)
有人可以帮我弄这个吗?谢谢.
您需要输出*同一命名空间中的其他元素(与 匹配):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://AU.InputOrders" xmlns="http://AU.OutputOrders">
<xsl:output method="xml" encoding="utf-8" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/*">
<xsl:element name="{name()}" namespace="http://AU.OutputOrders">
<xsl:apply-templates select="ns0:Order[1]"/>
</xsl:element>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{name()}" namespace="http://AU.OutputOrders">
<xsl:apply-templates select="node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12600 次 |
| 最近记录: |