在XSLT上,是否有簡單的方法輸出變量的所有內容?XSL輸出everythin包括節點名稱,屬性,文本
我的變量是這樣的:
<node a="a">
a
<node>
b
</node>
</node>
所以我想輸出它,因爲它包括標籤名稱,屬性,文本等
謝謝!
AND:
是有可能不輸出一些標籤嗎?如
<a>aa
<b>bb
<c>cc</c></b></a>
我想避免輸出b標籤,但想輸出c?謝謝!
在XSLT上,是否有簡單的方法輸出變量的所有內容?XSL輸出everythin包括節點名稱,屬性,文本
我的變量是這樣的:
<node a="a">
a
<node>
b
</node>
</node>
所以我想輸出它,因爲它包括標籤名稱,屬性,文本等
謝謝!
AND:
是有可能不輸出一些標籤嗎?如
<a>aa
<b>bb
<c>cc</c></b></a>
我想避免輸出b標籤,但想輸出c?謝謝!
好問題,+1。
這種轉變提供了答案到這兩個問題:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="vVarNode" select="/*/node"/>
<xsl:variable name="vVarA" select="/*/a"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/">
<xsl:copy-of select="$vVarNode"/>
===========
<xsl:apply-templates select="$vVarA"/>
</xsl:template>
<xsl:template match="b">
<xsl:apply-templates select="*"/>
</xsl:template>
</xsl:stylesheet>
當此XML文檔的應用(從兩個變量是 「裝」):
<doc>
<node a="a">
a
<node>
b
</node>
</node>
<a>aa
<b>bb
<c>cc</c>
</b>
</a>
</doc>
想要的,正確的結果產生(第一個變量的內容是「原樣」輸出,而b
及其文本節點子節點從第二個變量的輸出內容中刪除):
<node a="a">
a
<node>
b
</node>
</node>
===========
<a>aa
<c>cc</c>
</a>
你是什麼意思的「輸出」?你的意思是「包含在結果文件中」? –
是的,對不起,我不習慣功能性編程可能會用錯詞:) – Ataman