Php 在SimpleXML和XPath中设置父节点变量

Php 在SimpleXML和XPath中设置父节点变量,php,xml,xpath,simplexml,Php,Xml,Xpath,Simplexml,我正在使用PHP和SimpleXML/XPath,我只是想知道如何将某个父级(具有某个属性值)设置为一个变量,我可以在“foreach”中使用这个变量 我当前遇到以下错误: Notice: Array to string conversion 这个输出呢 Array 谢谢你的任何线索 以下是php代码: <?php $url = "test_b.xml"; $xml = simplexml_load_file($url); $xml_report_abbrev_b = $xml-

我正在使用PHP和SimpleXML/XPath,我只是想知道如何将某个父级(具有某个属性值)设置为一个变量,我可以在“foreach”中使用这个变量

我当前遇到以下错误:

Notice: Array to string conversion
这个输出呢

Array
谢谢你的任何线索

以下是php代码:

<?php
$url = "test_b.xml";


$xml = simplexml_load_file($url);

$xml_report_abbrev_b = $xml->xpath('//poster[@name="U-Verify"]')[0];

if($xml_report_abbrev_b){
    foreach($xml_report_abbrev_b as $node_a) {
        echo '<h1>'.$node_a->xpath('/full_image/@url').'</h1>';
    }
} else {
    echo 'XPath query failed';  
}

?>
xpath('//poster[@name=“U-Verify”]')[0]; if($xml\u report\u abbrev\u b){ foreach($xml\u report\u abbrev\u b作为$node\u a){ 回显'.$node_a->xpath('/full_image/@url'); } }否则{ echo“XPath查询失败”; } ?> 以下是xml:

<data>
  <poster name="U-Verify" id="uverify">
    <full_image url="u-verify.jpg"/>
    <full_other url=""/>
  </poster>
  <poster name="Minimum" id="min">
    <full_image url="min.jpg"/>
    <full_other url="spa_min.jpg"/>
  </poster>
</data>

直接使用SimpleXML的元素访问和属性访问,而不是使用XPath查询,将使代码更简单,性能更好。 你的代码可以减少到

$xml_report_abbrev_b = $xml->xpath('//poster[@name="U-Verify"]');

if($xml_report_abbrev_b){
    echo '<h1>'.$xml_report_abbrev_b[0]->full_image['url'].'</h1>';
} else {
    echo 'XPath query failed';
}

您的xpath应该是“//poster[@name=“U-Verify”]/*”,您不应该引用第一个元素([0])。谢谢-更进一步,一旦我有了这个变量,我将如何在其级别获取属性?例如,poster节点中有两个属性,“name”和“id”。“在获取级别变量后,如何获取“id”?要获取id属性-
$xml\u report\u abbrev\u b[0]['id']
,基本上,
$xml\u report\u abbrev\u b[0]

<h1>u-verify.jpg</h1>