如何在php中检索xml文件子元素值?
我有一个xml文件如何在php中检索xml文件子元素值?,php,xml,Php,Xml,我有一个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</attrTagN
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>
StringAssetInfo[1]->attrName。“
”;?>
获取您想要的东西的方法是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"
}
}
返回错误的是什么?加载文件?因为XML格式不好,因为它缺少根元素。我得到了错误:无法创建对象。哦,消息在
die()
中。正如我所说,这不是格式良好的XML。获取格式良好的XML是第一个选项。这就是XML的全部内容吗?@ChrisWhite是的,你说得对。它的格式不是很好,因为我试图用xml中很少的内容测试一些东西。实际内容相当大。@ChrisWhite我已经粘贴了我的xml(对不起,它相当大)。我正在尝试获取信息。从第190行到第194行,他们没有指出他们想通过特定文本过滤的任何地方。@ChrisWhite谢谢ChrisWhite,看起来很棒。var_dump($path)提供了3个字段和值。我想知道如果我们只能提取“黄金时段政治”
,$path
中的返回显然是一个数组,正如我们在变量转储中看到的那样,因此它很简单,只要echo$path[0]->值
@ChrisWhite我还有一个。尽管如此,这并不相似。我想知道你是否可以看一看。