這裏是我的XML格式:無法獲得與自定義命名空間XSLT輸出
<?xml version="1.0" encoding="utf-8"?>
<Root xmlns="http://www.example.com/xyz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<child>
<element1>xyz</element1>
<element2>def</element2>
</child>
</Root>
這裏是我的XSLT
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns="http://www.example.com/xyz"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" />
<xsl:template match="/">
<xsl:for-each select="Root/child">
<xsl:value-of select="element1"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
這不會有任何輸出
當我走XML文件的URL,我得到的輸出沒有任何問題。不過,我想讓這個與命名空間正常工作。
我想根據我在網上找到的其他問題進行一些調整:)改變match="/"
到"match=Root"
1 - 這個剛剛打印出來的整個文件沒有改變xmlns="http://www.example.com/xyz"
到xmlns:Root="http://www.example.com/xyz"
標籤
2) - 此仍然沒有打印任何東西。
我已經閱讀了一些其他類似的問題,但格式不同,它不適用於我的情況。
因此,命名空間前綴不必與xml文檔中的命名空間定義相同?我可以在xslt文檔中的xml和'xmlns:whatever =「example.com」'中使用'Root xmlns =「example.com」'? ---只是想確認這是你在說什麼 – Deena
第二個後續問題 - 我的XML文檔實際上比這更嵌套,我正在嵌套循環。在嵌套循環中,我有這樣一行:' '。當我使用名稱空間前綴指定每個元素時,如何指定此行? –
Deena
是的,但「根」不是源文檔xml中的命名空間前綴。在源文件中,您甚至沒有指定前綴。這看起來像: '<?xml version =「1.0」encoding =「utf-8」?> XYZ BB:元素1> DEF BB:在element2> ' –
cwschmidt