3
子節點我想模板應用到具有特定屬性的子節點,我很好奇,如果有可能有<template match=...
應用模板到具有與屬性
所以,如果我有一個輸入XML
<?xml version="1.0"?>
<parent-node>
<child-node>
<label>value1</label>
<name>name1</name>
<desc src="anything">description1</desc>
</child-node>
<child-node>
<label>value2</label>
<desc>description2</desc>
</child-node>
<some-node>
<name>name3</name>
<desc src="something">description3</desc>
</some-node>
</parent-node>
所需模板將被應用於具有desc
兒童定義src
屬性,例如,節點。第一個和最後一個節點:
<child-node>
<label>value1</label>
<name>name1</name>
<desc src="anything">description1</desc>
</child-node>
<some-node>
<name>name3</name>
<desc src="something">description3</desc>
</some-node>
盡我至今是一個模板匹配有desc
孩子節點,其餘的(測試是否有任何desc
節點有@src
)是模板裏面,一個xsl:choose
條款:
<xsl:template match="*[desc]">
<xsl:choose>
<xsl:when test="desc[@src]">
<xsl:element name="node-with-src">
[...]
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="node">
[...]
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
通過具有這樣的模板,我可以離開,但該模板裏面的otherwise
一部分,無論如何,這將是一個要好很多。
預先感謝您的每一個答案!
編輯 我更喜歡1.0解決方案,但它不是一個標準。
太棒了!非常感謝你,主要是這個'''部分,我因爲它而瘋了,而且我不能正確地說出問題! –
rekaszeru