假设我有一个类似下面这样的XML文档(请注意,对于我的目的而言,标记在最终文档中出现的顺序并不重要,以防有什么不同;我们只是将XML用作一种奇特的键/值对设计)
<MyRoot>
various tags here I don't care about at the moment
<child><GoldenTag>1234</GoldenTag></child>
</MyRoot>
请注意,GoldenTag的值并不总是1234;这只是为了说明。现在,我想创建一个SilverTag,它是MyRoot的(直接)子级,它的值与GoldenTag相同,假设GoldenTag存在并且满足各种其他条件。
我看不到这样做的好方法,因为如果我使用template mach='GoldenTag'
,那么模板的内容就会在child
标记中结束,而这不是我想要它的位置。
发布于 2019-11-04 19:45:25
当然,MyRoot
上的任何匹配也可以包括其他元素上的条件,例如
<xsl:template match="MyRoot[child/GoldenTag and your-other-conditions]">
<xsl:copy>
<xsl:apply-templates/>
<SilverTag><xsl:value-of select="child/GoldenTag"/></SilverTag>
</xsl:copy>
</xsl:template>
发布于 2019-11-04 21:33:26
根据马丁的回答,我认为(希望?)像这样的东西应该是有效的:
<xsl:template match="child[GoldenTag and other-tests]">
<xsl:copy-of select="."/>
<SilverTag>
<xsl:value-of select="GoldenTag"/>
</SilverTag>
</xsl:template>
https://stackoverflow.com/questions/58699952
复制相似问题