Php simpleXML基于属性获取节点子节点
我正试图解析出一个节点的值,该节点由它的一个属性引用。但我不确定语法 XML:Php simpleXML基于属性获取节点子节点,php,xml,simplexml,Php,Xml,Simplexml,我正试图解析出一个节点的值,该节点由它的一个属性引用。但我不确定语法 XML: 如果任何人有任何资源,包括这些东西,请分享 只需循环海报元素,并记住将属性值强制转换为字符串,因为您希望将它们作为字符串进行比较(并可能输出): $xml = simplexml_load_file('PosterData.xml'); foreach ($xml->poster as $poster) { if ((string) $poster['id'] == 'minwage') {
如果任何人有任何资源,包括这些东西,请分享 只需循环海报元素,并记住将属性值强制转换为字符串,因为您希望将它们作为字符串进行比较(并可能输出):
$xml = simplexml_load_file('PosterData.xml');
foreach ($xml->poster as $poster) {
if ((string) $poster['id'] == 'minwage') {
echo (string) $poster->full_image['url'];
}
}
您可以使用:
$object = simplexml_load_string('<data><poster name="E-Verify" id="everify"><full_image url="e-verify-swa-poster.jpg"/><full_other url=""/></poster><poster name="Minimum Wage" id="minwage"><full_image url="minwage.jpg"/><full_other url="spa_minwage.jpg"/></poster></data>');
foreach ($object as $value) {
echo "URL: ".$value->full_image->attributes();
echo "<br>";
}
$object=simplexml\u load\u字符串(“”);
foreach($objectas$value){
回显“URL:”.$value->full_image->attributes();
回声“
”;
}
如果调用外部文件,可以使用simplexml\u load\u file('Some external file.xml')
。您应该能够使用在简单的xml文档上运行
$xml = simplexml_load_file('PosterData.xml');
$main_url = $xml->xpath('name[@id="minwage"]/full_image')[0];
echo $main_url;
这很有魅力。我仔细考虑了这个过程+1这就是我最初尝试的方式。感谢您提供的信息。这比循环要优雅得多,应该是例外的答案。我一直在尝试通过在本地主机上复制代码来实现这段代码,但我得到了“未定义的偏移量:0”请参见:name[@id=“minwage”]”中的“name”不应该是“poster”吗?因为元素是一个“海报”元素?正如您所要求的资源,是的,有:和
$object = simplexml_load_string('<data><poster name="E-Verify" id="everify"><full_image url="e-verify-swa-poster.jpg"/><full_other url=""/></poster><poster name="Minimum Wage" id="minwage"><full_image url="minwage.jpg"/><full_other url="spa_minwage.jpg"/></poster></data>');
foreach ($object as $value) {
echo "URL: ".$value->full_image->attributes();
echo "<br>";
}
$xml = simplexml_load_file('PosterData.xml');
$main_url = $xml->xpath('name[@id="minwage"]/full_image')[0];
echo $main_url;