从XML节点获取所有内容作为字符串

时间:2011-05-12 00:38:28

标签: php xml parent nodes

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

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

我希望能够打印出来:
echo $ xml-&gt; parent [0];如
some plane text. some Plane text. <child prop="test" /> more plane text

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

感谢您的帮助!!

1 个答案:

答案 0 :(得分:2)

$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);
}