根據子節點值獲取父節點的XSLT是什麼?使用特定值獲取節點父節點的XSLT
我的XML:
<cast>
<character>
<name>Bugs</name>
<id>1</id>
</character>
<character>
<name>Daffy</name>
<id>2</id>
</character>
我已經試過這樣:
<xsl:template match="/cast/character/id">
<xsl:if test="text()=1">
<xsl:apply-templates select="../self" mode='copier'/>
</xsl:if>
</xsl:template>
<xsl:template match="*" mode='copier'>
<xsl:apply-templates />
</xsl:template>
但這輸出文檔中的每個節點的文本。
編輯:我要輸出XML在這裏,我打算將其擴展到XML生成
Thx。我將XPath讀爲「根的孩子」,將該字符元素與id元素具有帶整數1的文本節點的子元素一起使用。「是的?如果額外的分支插入到級別的上方,該表達式會中斷id元素? – chernevik
@chernevik:如果對源XML文檔進行了修改,以使「character」元素不再是頂層元素的子元素,則此XPath表達式將不會選擇任何節點並需要進行更改。最好將其再次更改爲特定的XPath表達式,而不是使用「// character」 - 因爲XPath僞操作符可能非常慢(通常會導致整個(子)樹遍歷)。 –