gpt4 book ai didi

xslt - 仅输出文本没有具有特定值的子节点

转载 作者:行者123 更新时间:2023-12-03 16:37:09 25 4
gpt4 key购买 nike

我从 Web 服务调用接收如下 XML 并希望输出消息的文本,前提是它没有 PRIVATE 标签。

<MessageStore>
<MessageDetails>
<Text>Message1</Text>
<Labels>
<Label>PRIVATE</Label>
</Labels>
</MessageDetails>

<MessageDetails>
<Text>Message2</Text>
<Labels>
<Label>PRIVATE</Label>
</Labels>
</MessageDetails>

<MessageDetails>
<Text>Message3</Text>
<Labels>
<Label>PRIVATE</Label>
<Label>PUBLIC</Label>
</Labels>
</MessageDetails>

<MessageDetails>
<Text>Message4</Text>
<Labels>
<Label>PUBLIC</Label>
<Label>PRIVATE</Label>
</Labels>
</MessageDetails>

<MessageDetails>
<Text>Message5</Text>
<Labels>
<Label>PUBLIC</Label>
</Labels>
</MessageDetails>
</MessageStore>

我尝试了以下 XSLT,但如果消息同时具有私有(private)标签和公共(public)标签,则仍会输出其文本。例如。 “消息 3 消息 4 消息 5”。我想要的只是“消息5”。
    <?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="MessageDetails">

<xsl:if test="Labels/Label[not(contains(text(), 'PRIVATE'))]">
<xsl:value-of select="Text" />
</xsl:if>

</xsl:template>
</xsl:stylesheet>

最佳答案

以下 XPath(在您的 xsl:if 元素中)应该可以工作:

not(Labels/Label = 'PRIVATE')

关于xslt - 仅输出文本没有具有特定值的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22096559/

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