以字符串形式从 XML 节点获取所有内容


Get ALL content from an XML Node as a string

如果标题令人困惑,我很抱歉。 我正在开发一个XML解析器,它的作用类似于HTML,但使非编码人员更容易。 解析器将读取一个 XML 节点,并打印出相应的 HTML 代码。 我遇到的困难是我希望能够以字符串形式访问节点内的所有内容(包括任何子节点)。 现在我正在使用PHP的Simple XML。

<parent>
some plane text. some Plane text. <child prop="test" /> more plane text
</parent>

我希望能够打印出来:
回声$xml->父[0];如

some plane text. some Plane text. <child prop="test" /> more plane text

从这里开始,我将进行子字符串搜索,这些搜索将拉出子节点并以不同的方式处理它。 简单来说,我想打印出一些文本,然后读取子节点,并继续打印出文本,直到读取新的子节点。

感谢您的帮助!!

$xml->parent[0]->asXML();

将输出

<parent> some plane text. some Plane text. <child prop="test" /> more plane text </parent>

它可能包括 XML 声明,具体取决于元素。然后,您可以去除开始标记和结束标记。

您可以使用此函数执行此操作:

function xml_contents($node)
{
    $str = $node->asXML();
    $i = strlen($node->getName()) + 2;
    return substr(substr($str, $i), 0, -1 - $i);
}