Xpath 路径帮助

发布于 2024-09-09 06:08:47 字数 1050 浏览 5 评论 0原文

我有以下 XML:

<products>
    <product>       
        <name>Flat Panel Monitor</name>
        <code>LS123</code>
        <attributes>
            <attribute>
                <group>Color</group>
                <values>
                    <value>Red</value>
                    <value>Blue</value>
                    <value>Green</value>
                </values>
            </attribute>
            <attribute>
                <group>Warranty</group>
                <values>
                    <value>5 Year</value>
                </values>
            </attribute>
        </attributes>
    </product>
</products>

我将使用什么 Xpath 来获取组节点值为“Color”的属性节点的所有值? /product/attributes/attribute/values/value 的标准 Xpath 将返回所有值,包括保修组内的值,但我需要将它们分开。

我想在伪代码中我所说的是获取所有“值”,其中父节点“值”是具有值“颜色”的节点“组”的兄弟节点 - 希望这是可能的吗?

谢谢。

I have the following XML:

<products>
    <product>       
        <name>Flat Panel Monitor</name>
        <code>LS123</code>
        <attributes>
            <attribute>
                <group>Color</group>
                <values>
                    <value>Red</value>
                    <value>Blue</value>
                    <value>Green</value>
                </values>
            </attribute>
            <attribute>
                <group>Warranty</group>
                <values>
                    <value>5 Year</value>
                </values>
            </attribute>
        </attributes>
    </product>
</products>

What Xpath would i use to get all value's with the attribute node with the group node value of "Color" ? A standard Xpath of /product/attributes/attribute/values/value would return all value's including value's from within the Warranty group but i need to keep them separate.

I guess in pseudocode what i'm saying is get all "value" where the parent node "values" is a sibling of the node "group" with the value "Color" - hopefully this is possible?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

俏︾媚 2024-09-16 06:08:47

您需要使用方括号来过滤节点,因此:
/product/attributes/attribute[group='Color']/values/value

You need to use square brackets to filter the nodes, thus:
/product/attributes/attribute[group='Color']/values/value

唠甜嗑 2024-09-16 06:08:47

您只需要那些具有 Colorgroup 'uncle' 的 value 节点,因此请将其作为您已经使用的 xpath 的条件out:

/product/attributes/attribute/values/value[../../group = 'Color']

这表示要使 value 节点有效,它必须有一个父节点,而父节点的子节点的值为 Color

You require only those value nodes that have a group 'uncle' of Color, so put that as a condition on the xpath you have already worked out:

/product/attributes/attribute/values/value[../../group = 'Color']

This says that for a value node to be valid, it must have a parent with a parent with a child with value Color.

梦开始←不甜 2024-09-16 06:08:47

还有另一个选项:

//value[ancestor::attribute[group='Color']]

Yet another option:

//value[ancestor::attribute[group='Color']]

虐人心 2024-09-16 06:08:47
//values[preceding-sibling::group[text()="Color"]]/value
//values[preceding-sibling::group[text()="Color"]]/value
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文