2013-07-12 37 views
6

Tôi có thông điệp này XML:XSLT 1.0 Di xmlns = "" từ yếu tố

<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> 

và XSLT này 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> 

Trên XSLT mang lại cho tôi kết quả như sau:

<Orders xmlns="http://AU.OutputOrders"><Order xmlns=""> 
<OrderRef>D04004451</OrderRef> 
<ABN>9780571244461</ABN> 
<OrderQty>1</OrderQty> 
</Order></Orders> 

Đó là gần như những gì tôi cần, nhưng tôi không muốn xlmns = "" sau nút Đặt hàng.

<Orders xmlns="http://AU.OutputOrders"><Order> 
<OrderRef>D04004451</OrderRef> 
<ABN>9780571244461</ABN> 
<OrderQty>1</OrderQty> 
</Order></Orders> 

Ai đó có thể giúp tôi với điều này:

Những gì tôi muốn điều này là gì? Cảm ơn.

Trả lời

2

Bạn cần để sản xuất các yếu tố khác (phù hợp với *) trong không gian tên giống nhau:

<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> 
Các vấn đề liên quan