如何在php中使用以下同级xpath查询?
XML:如何在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/
试图通过了解传入的
来获取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"]');