Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml xpath选择第一个子项并检查值_Xml_Xpath - Fatal编程技术网

Xml xpath选择第一个子项并检查值

Xml xpath选择第一个子项并检查值,xml,xpath,Xml,Xpath,我想使用xpath进行单元测试,我想做的是: <?xml version="1.0"?> <api_data> <message>OK</message> <status>200</status> <data> <name>John</name> <email>john@gmail.com</email>

我想使用xpath进行单元测试,我想做的是:

<?xml version="1.0"?>
<api_data>
    <message>OK</message>
    <status>200</status>
    <data>
        <name>John</name>
        <email>john@gmail.com</email>
    </data>
</api_data>
xpath查询:
/api_data[message=“OK”]

而且这仍然匹配。。但我不想那样。。所以我希望它更严格。。但是怎么做呢


我不想与值子级匹配,因此只需在不使用

的情况下进行匹配即可,因为您需要这样做/*[“确定”]


根据定义,XPath中元素的字符串值是其所有后代文本节点的串联,即直接包含在元素中的所有文本,或其子元素、孙子节点等

因此,您需要检查
消息的字符串值是否为“OK”,以及
消息是否没有任何子元素:

/api_data/message[.="OK"][not(*)]

/api\u data[message/value=“OK”]
?我不希望与值子级匹配,因此仅匹配而不匹配
这仍然不匹配,请参阅解决方案
xpath query: /api_data/message/*["OK"]
/api_data/message[.="OK"][not(*)]