2011-10-11 82 views
2

源XML文件:我們必須爲模板標籤中的匹配提供什麼價值?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<!-- Inbound Message --> 
<Sales xmlns="abc:org.xcbl:schemas/xcbl/v4/xcbl4.xsd" xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"> 
</Sales> 

代碼:

<?xml version="1.0" encoding="UTF-8"?> 
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
     <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 

    <xsl:template match="/Sales"> 
    </xsl:template> 

查詢:在源XML,銷售根節點標記包含以下 值。 xmlns =「abc:org.xcbl:schemas/xcbl/v4/xcbl4.xsd」xmlns:SOAPENV =「http://www.w3.org/2003/05/soap-envelope」 xmlns:xsi =「http ://www.w3.org/2001/XMLSchema-instance「 xmlns:SOAP-ENC =」http://www.w3.org/2003/05/soap-encoding

如何啓動模板?

<xsl:template match="/Sales'> 
<xsl:template match="/'> 

上面的代碼是行不通的。請幫我解決這個問題

。在XSLT

回答

1

申報命名空間,然後使用合格的名稱,例如:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
       xmlns:ns="abc:org.xcbl:schemas/xcbl/v4/xcbl4.xsd"> 

    <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/> 

    <xsl:template match="/ns:Sales"> 
    </xsl:template> 

</xsl:stylesheet> 
+0

基里爾嗨,你能告訴我,爲什麼我們需要使用NS :.我是否也需要爲子節點添加相同的內容。如何檢索子節點? – Sara

+0

@Sara,這是因爲XML中的元素位於命名空間中。要檢索子元素,您可以使用完全限定名稱(帶前綴)或例如' '。這會將模板應用於所有子元素。 –

相關問題