当前位置: 首页 > 知识库问答 >
问题:

XPath选择存在给定属性值的子节点

孟光耀
2023-03-14

我正在尝试创建az xpath,我想在其中获取一个节点,其中存在一个具有属性的子节点。我的问题是,这个结构中唯一的区别是子属性。这里有一个例子来告诉你我的意思:

<Values>
    <record name="svc_sig">
        <record name="sig_in">
            <array name="rec_fields">
                <record>
                    <value name=field_name">UniqueName1</value>
                </record>
                <record>
                    <value name=field_name">UniqueName2</value>
                </record>
                <record>
                    <value name=field_name">UniqueName3</value>
                </record>
                <record>
                    <value name=field_name">UniqueName4</value>
                </record>
            </array>
        </record>
    </record>
<Values>

例如,给定UniqueName3,我想获取包含它的记录。到目前为止,我尝试了以下操作:

/Values/record[@name='svc_sig']/record[@name='sig_in']/array[@name]/record/value[@name='field_name']

然而,有了这个,我得到了所有具有field_name属性的值节点。

共有1个答案

葛宏爽
2023-03-14

你可以试试这个:

//value[text()="UniqueName3"]/..

这将选择记录元素,它是包含UniqueName3作为文本值的value元素的父元素。

这里有一个证明:http://www.xpathtester.com/obj/1afeedf1-46bd-4adb-841e-da6e6945b6d4(按下测试按钮)。

 类似资料:
  • 我有以下XML。 我在http://chris.photobooks.com/xml/default.htm上查看了它,它显示xpath无效,不确定问题出在哪里。

  • 我一直在用PHP的SimpleXMLIterator处理XML数据。 在迭代一个子树(

  • 这是我的问题的一个细节。我需要使用XPath选择以下节点: 应该如何制定xpath查询来查找属性的值等于属性的值的所有节点? 当然完全容易--但我只是无法到达那里,在网上找不到任何合适的东西。

  • 从xml中,我需要获得每个节点的名称和面积。 我知道示例xpath,比如,

  • 我试图找到一个有两个子节点的web元素: 我尝试了来获取第一个元素,但对我来说不起作用。

  • 问题内容: 我正在使用Selenium IDE进行一些Web应用程序测试,并希望引入一些随机性以扩展我们的测试。我当前正在使用Selenium ,在其中给它一个XPath表达式,它存储与之匹配的第一个元素(排序)。但是我不想存储第一个匹配项,我希望它随机选择一个子节点。 例如 选择此表的所有tr子级。 选择第一个tr(假设现在嵌套表) 选择第三个tr,依此类推。 是否有某种方法(完全在xpath中