Php 在SimpleXML和XPath中设置父节点变量
我正在使用PHP和SimpleXML/XPath,我只是想知道如何将某个父级(具有某个属性值)设置为一个变量,我可以在“foreach”中使用这个变量 我当前遇到以下错误: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-
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>