我有一个XML文件36031P_new.xml
,我试图在其中检索php中的xml子元素值。
xml文件中存在的内容片段为:
<?xml version="1.0" encoding="UTF-8"?>
<StringAssetInfo>
<attrName>CASE_SERIES_TITLE_FRENCH</attrName>
<attrTagName>CASE_SERIES_TITLE_FRENCH</attrTagName>
<value>PrimeTime Politics avec Dusen</value>
</StringAssetInfo>
<StringAssetInfo>
<attrName>CASE_SERIES_TITLE</attrName>
<attrTagName>CASE_SERIES_TITLE</attrTagName>
<value>PrimeTime Politics</value>
</StringAssetInfo>
我尝试使用以下 php代码,但出现错误错误:无法创建对象。
<?php
$xml=simplexml_load_file("36031P_new.xml") or die("Error: Cannot create object");
?>
<td style="width:8%;">
<?php echo $xml->StringAssetInfo[1]->attrName . "<br>"; ?>
</td>
答案 0 :(得分:1)
获得您想要的东西的方法是XPath:
$xml = simplexml_load_file('test2.xml') or die('Unable to load XML');
// Find the attrName with the desired text, then go up a level to get the parent node.
$path = $xml->xpath('//StringAssetInfo/attrName[text()="CPAC_SERIES_TITLE"]/..');
var_dump($path);
输出:
iridium:~ cwhite$ php -f bigxml.php
array(1) {
[0]=>
object(SimpleXMLElement)#2 (3) {
["attrName"]=>
string(17) "CPAC_SERIES_TITLE"
["attrTagName"]=>
string(17) "CPAC_SERIES_TITLE"
["value"]=>
string(18) "PrimeTime Politics"
}
}