Simple_xml_load_string,多级节点未加载节点

时间:2015-12-02 09:59:33

标签: php xml simplexml-load-string

我有这样的XML,它有一些带有宏的节点(例如{author}) -

<?xml version="1.0"?>
    <catalog>
        <book id="test">
            <author>{author}</author>
            <title>{title}</title>
            <genre>{genre}</genre>
            <price>{price}</price>
            <publish_date>{publish_date}</publish_date>
            <description>{desciption}</description>
        </book>
    </catalog>

在上面执行simple_xml_load_string()不会返回目录节点,即使没有显示错误(使用libxml_use_internal_errors(true)并迭代libxml_get_errors())。我还在http://xmlbeautifier.com/验证了xml。

以上是<{1}}的输出 -

simple_xml_load_string()

缺少目录节点。

1 个答案:

答案 0 :(得分:2)

每个XML文档只有一个根元素。它包含所有其他元素,因此是所有其他元素的唯一父元素。 ROOT元素也称为PARENT元素。所以它不缺少1个节点,这就是它的工作原理。如果你想要根元素的名称,试试这个:

<?php
$xml = simplexml_load_string($str);
echo $xml->getName();
?>