Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中检索xml文件子元素值?_Php_Xml - Fatal编程技术网

如何在php中检索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

我有一个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>

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我还有一个。尽管如此,这并不相似。我想知道你是否可以看一看。