如何使用 xslt 过滤第一次出现的具有来自 xml 的不同属性的元素
how to filter first occurrence of an element with different attributes from xml using xslt
我正在尝试根据元素及其属性来过滤第一次出现的情况。这里的元素是相同的,但基于属性我们必须取第一次出现。
我的 xml 如下所示:
<block ID="IF5">
<codes ID="IF5" md.mnem="hg2">
<info>
<name>ARTICLE</name>
<designator>1</designator>
<info>
</codes>
<codes ID="IF5" md.mnem="hg2c">
<info>
<headtext>PUBLIC</headtext>
</info>
</codes>
<codes ID="IF5" md.mnem="hg2">
<info>
<name>ARTICLE</name>
<designator>1</designator>
</info>
</codes>
<codes ID="IF5" md.mnem="hg2c">
<info>
<headtext>PUBLIC</headtext>
</info>
</codes>
</block>
输出 xml 应如下所示:
<block ID="IF5">
<codes ID="IF5" md.mnem="hg2">
<info>
<name>ARTICLE</name>
<designator>1</designator>
<info>
</codes>
<codes ID="IF5" md.mnem="hg2c">
<info>
<headtext>PUBLIC</headtext>
</info>
</codes>
</block>
我正在尝试使用如下模板匹配:
<xsl:template match="codes.head[@md.mnem='hg*c' and position() > 1]" />
<xsl:template match="codes.head[@md.mnem='hg*' and position() > 1]" />
谁能帮我解决这个问题,在此先感谢。
将位置谓词分开放在最后,例如[position() > 1]
例如match="codes.head[@md.mnem='hg2c'][position() > 1]"
.
我正在尝试根据元素及其属性来过滤第一次出现的情况。这里的元素是相同的,但基于属性我们必须取第一次出现。
我的 xml 如下所示:
<block ID="IF5">
<codes ID="IF5" md.mnem="hg2">
<info>
<name>ARTICLE</name>
<designator>1</designator>
<info>
</codes>
<codes ID="IF5" md.mnem="hg2c">
<info>
<headtext>PUBLIC</headtext>
</info>
</codes>
<codes ID="IF5" md.mnem="hg2">
<info>
<name>ARTICLE</name>
<designator>1</designator>
</info>
</codes>
<codes ID="IF5" md.mnem="hg2c">
<info>
<headtext>PUBLIC</headtext>
</info>
</codes>
</block>
输出 xml 应如下所示:
<block ID="IF5">
<codes ID="IF5" md.mnem="hg2">
<info>
<name>ARTICLE</name>
<designator>1</designator>
<info>
</codes>
<codes ID="IF5" md.mnem="hg2c">
<info>
<headtext>PUBLIC</headtext>
</info>
</codes>
</block>
我正在尝试使用如下模板匹配:
<xsl:template match="codes.head[@md.mnem='hg*c' and position() > 1]" />
<xsl:template match="codes.head[@md.mnem='hg*' and position() > 1]" />
谁能帮我解决这个问题,在此先感谢。
将位置谓词分开放在最后,例如[position() > 1]
例如match="codes.head[@md.mnem='hg2c'][position() > 1]"
.