PHP 通过查询元素的值来加载/获取 XML 子项


php load/get xml child by querying value of element

data,基于发布的名称从我的xml文件中的值。

这是我的 xml 文件:

<object>
  <name>test 1</name>
  <data>some data</data>
  <value>1</value>
</object>
<object>
  <name>test 2</name>
  <data>some data 2</data>
  <value>2</value>
</object>

这是我的 php 文件:

$wijzignaam = $_POST['wijzignaam'];
$xmlfile = file_get_contents('../xmlfile.xml');
$xml = new SimpleXMLElement($xmlstr);
$xpath = $xml->xpath('object/name["'.$wijzignaam.'"]');
print_r($xpath);

这将返回一个空数组,我一直在寻找答案一段时间,但我没有找到任何东西,所以任何帮助不胜感激

这里有几个问题:

  1. XML 没有根元素,因此无效。
  2. xpath中的路径不完整
  3. xpath中的条件语法错误

ad 1:用根节点将 XML 括起来,如下所示:

<root>
    <object>
        <name>test 1</name>
    </object>
</root>

AD 2 和 3:路径和条件语法:

$xpath = $xml->xpath("/root/object[name = 'test 1']");

$xpath = $xml->xpath("//object[name = 'test 1']");

查看实际操作:https://eval.in/517818