gpt4 book ai didi

xml - 检查输出中的重复元素

转载 作者:数据小太阳 更新时间:2023-10-29 02:01:58 27 4
gpt4 key购买 nike

我有一些 XML,出于示例目的,它看起来像这样:

<root>
<field1>test</field1>
<f2>t2</f2>
<f2>t3</f2>
</root>

我想用 XSLT 转换它,但我想抑制输出中的第二个 f2 元素 - 当源中的第二个 f2 元素出现时,如何检查我的模板内部以查看 f2 元素是否已存在于输出中处理了吗?我的 XSLT 目前看起来像这样:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no" omit-xml-declaration="yes" standalone="no" />
<xsl:template match="/">
<xsl:for-each select="./root">
<output>
<xsl:apply-templates />
</output>
</xsl:for-each>
</xsl:template>
<xsl:template match="*" >
<xsl:element name="{name(.)}">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
</xsl:stylesheet>

我认为我需要对模板中的 xsl:element 进行某种检查,但我不确定如何询问输出文档以查看该元素是否已经存在。

编辑:忘记了 pre 标签,代码现在应该可见了!

最佳答案

这取决于您想要的系统范围。

即您是否只关心同一父级的子元素,或同一级别的所有元素(如果您愿意,可以使用“表兄弟”)或文档中任何位置的元素...

在第一种情况下,您可以检查前同级轴以查看是否存在任何其他具有相同名称的元素。

<xsl:if test="count(preceding-sibling::node()[name()=name(current())])=0">
... do stuff in here.
</xsl:if>

关于xml - 检查输出中的重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/157705/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com