我想測試一個標籤的存在並根據該結果創建新的節點..是否可以使用XSLT檢測(xml)標籤的存在?
這是輸入XML:
<root>
<tag1>NS</tag1>
<tag2 id="8">NS</tag2>
<test>
<other_tag>text</other_tag>
<main>Y</main>
</test>
<test>
<other_tag>text</other_tag>
</test>
</root>
而所需的輸出XML是:
<root>
<tag1>NS</tag1>
<tag2 id="8">NS</tag2>
<test>
<other_tag>text</other_tag>
<Main_Tag>Present</Main_Tag>
</test>
<test>
<other_tag>text</other_tag>
<Main_Tag>Absent</Main_Tag>
</test>
</root>
我知道測試標籤的價值,但這對我來說是新東西。
我試圖用這個模板: (不工作按要求)
<xsl:template match="test">
<xsl:element name="test">
<xsl:for-each select="/root/test/*">
<xsl:choose>
<xsl:when test="name()='bbb'">
<xsl:element name="Main_Tag">
<xsl:text>Present</xsl:text>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="Main_Tag">
<xsl:text>Absent</xsl:text>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:element>
</xsl:template>
謝謝先生..它完成.. :-) – 2010-01-22 10:40:31
變體#2爲+1。更短,重複性更低。 – Tomalak 2010-01-22 11:07:07
對不起,可能是迂腐,但你的代碼測試的主要元素的存在與值「Y」,不是嗎?當它具有另一個價值但仍然存在時會發生什麼? – 2010-01-22 12:28:15