如果以下兄弟中存在特定标签,则匹配标签
我有一个 xml,其中我的标签
仅需要转换,前提是其后面至少有一个标签
作为同级标签。
<Doc>
<T>T1</T>
<A>A1</A>
<T>T2</T>
<C>C2</C>
<T>T3</T>
<X>X1</X>
</Doc>
应该变成: T1A1T2C2X1
我目前有:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml"/>
<xsl:template match="/">
<xsl:element name="Doc">
<xsl:apply-templates select="*" />
</xsl:element>
</xsl:template>
<xsl:template match="A">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="C">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="X">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="T[following-sibling::* ??? exists C">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="*">
</xsl:template>
</xsl:stylesheet>
不知道如何实现 match="T[following-sibling::* ??? contains C"
I have an xml where my tag <T>
is only to be transformed, if there is at least one tag <C>
following behind it as sibling.
<Doc>
<T>T1</T>
<A>A1</A>
<T>T2</T>
<C>C2</C>
<T>T3</T>
<X>X1</X>
</Doc>
should become: T1A1T2C2X1
I currently have:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml"/>
<xsl:template match="/">
<xsl:element name="Doc">
<xsl:apply-templates select="*" />
</xsl:element>
</xsl:template>
<xsl:template match="A">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="C">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="X">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="T[following-sibling::* ??? exists C">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="*">
</xsl:template>
</xsl:stylesheet>
Not sure how to realize the match="T[following-sibling::* ??? exists C"
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
用途:
输出:
Use:
Output: