Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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
XML中的php访问子元素_Php_Xml Parsing - Fatal编程技术网

XML中的php访问子元素

XML中的php访问子元素,php,xml-parsing,Php,Xml Parsing,我正在PHP中使用simplexml解析XML文档。我有以下元素我无法创建到其中一个子元素的正确路径。以下是要素: <wp:category> <wp:term_id>13</wp:term_id> <wp:category_nicename>cleaner</wp:category_nicename> <wp:category_parent></wp:category_parent> <wp:cat_na

我正在PHP中使用simplexml解析XML文档。我有以下元素我无法创建到其中一个子元素的正确路径。以下是要素:

<wp:category>
<wp:term_id>13</wp:term_id>
<wp:category_nicename>cleaner</wp:category_nicename>
<wp:category_parent></wp:category_parent>
<wp:cat_name><![CDATA[CLEANER]]></wp:cat_name>

13
清洁工

我需要访问的元素是

我将使用什么路径访问数据

背风



$wp->类别->类别名称;是元素的路径。

我认为您可以将xml作为
DomDocument
导入,而不保留名称空间

$xml ='
<wp:category>
    <wp:term_id>13</wp:term_id>
    <wp:category_nicename>cleaner</wp:category_nicename>
    <wp:category_parent></wp:category_parent>
    <wp:cat_name ><![CDATA[CLEANER]]></wp:cat_name>
</wp:category>';

$data = new DOMDocument;
$data->preserveWhiteSpace = FALSE;
$data->loadXml($xml, LIBXML_NOERROR);
foreach($data->documentElement->childNodes as $child)
{
    if($child->nodeName == 'cat_name')
    {
        print_r($child->nodeValue);
    }
}

最简单的方法是使用SimpleXMLElementI我猜您使用的是SimpleXML,它对CDATA不起作用-关键字是“简单”;-)-你应该用这个。另外,请展示您迄今为止所做的尝试。我尝试了$wp->category->cat_name;我确信这不会奏效,但我真的没有其他想法。我又打了一次同样的电话,现在看来效果不错。现在想想为什么。(也许是我无端的怀疑)——谢谢你的评论。
CLEANER