說我有以下XML:基於屬性,合併對節點的新模板匹配
<root>
<tokens>
<token ID="t1">blah</token>
<token ID="t2">blabla</token>
<token ID="t3">shovel</token>
</tokens>
<relatedStuff>
<group gID="s1">
<references tokID="t1"/>
<references tokID="t2"/>
</group>
<group gID="s2">
<references tokID="t3"/>
</group>
</relatedStuff>
</root>
現在,考慮到for-each循環的每一個令牌將是非常低效和a bad idea,怎麼會一個去使用模板匹配,將這個XML轉換爲以下?
<s id="everything_merged">
<tok id="t1" gID="s1" >blah</tok>
<tok id="t2" gID="s1" >blabla</tok>
<tok id="t3" gID="s2" >shovel</tok>
</s>
所有我從<s>
要的是「GID」,對應於<tokens>
令牌的GID。
<xsl:for-each select="b:root/a:tokens/a:token">
<!-- and here some template matching -->
<xsl:attribute name="gID">
<xsl:value-of select="--correspondingNode'[email protected]"/>
</xsl:attribute>
</xsl:for-each>
我對這種事很模糊,所以非常感謝您的幫助!
問得好,+1。查看我的解決方案,獲取完整且簡短的純「推式」解決方案,該解決方案也使用密鑰。 – 2011-05-05 04:13:32