Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
如何在php中使用以下同级xpath查询?_Php_Xpath_Siblings - Fatal编程技术网

如何在php中使用以下同级xpath查询?

如何在php中使用以下同级xpath查询?,php,xpath,siblings,Php,Xpath,Siblings,XML: 试图通过了解传入的来获取truegoto。我当前的代码只返回一个空数组:/问题不在于下面的兄弟部分。此时,您已经没有选择任何节点。这是因为Tablename[incoming]意味着“Tablename元素具有名为incoming的子元素”。您需要使用Tablename[.=“incoming”]来测试元素的内容: /Routes/Route[@type=“source”]/Table/Tablename[.=“incoming”]/following sibling::Fields/

XML:


试图通过了解传入的
来获取
truegoto
。我当前的代码只返回一个空数组:/

问题不在于
下面的兄弟
部分。此时,您已经没有选择任何节点。这是因为
Tablename[incoming]
意味着“
Tablename
元素具有名为
incoming
的子元素”。您需要使用
Tablename[.=“incoming”]
来测试元素的内容:

/Routes/Route[@type=“source”]/Table/Tablename[.=“incoming”]/following sibling::Fields/Fieldsname[@ref=“dest”]

虽然我会接受@lonesomeday的答案,但这里可能有一个更容易阅读的选择:

$doc    = new SimpleXMLElement('routingConfig.xml', null, true);
$foo = $doc->xpath('/Routes/Route[@type="source"]/Table/Tablename[incoming]/following-sibling::Fields/Fieldsname[@ref="dest"]');
print_r($foo);

有关于这方面的手册或参考资料吗?以前从未见过这种语法。现在我考虑一下/Table[Tablename=“incoming”]。。。应该有用too@Jared
表示“当前项目”。您可以在中看到一个示例。是的,你的选择也应该很好。
$doc    = new SimpleXMLElement('routingConfig.xml', null, true);
$foo = $doc->xpath('/Routes/Route[@type="source"]/Table/Tablename[incoming]/following-sibling::Fields/Fieldsname[@ref="dest"]');
print_r($foo);
$foo = $doc->xpath('/Routes/Route[@type="source"]/Table[Tablename="incoming"]/Fields/Fieldsname[@ref="dest"]');