PHP5:遍历子节点列表(相当于child_nodes())?

mat*_*ler 2 php xml

全部,

我有一个看起来像这样的 XML 文档:

<root>
    <profile>
        <childA>
        <childB>
        <childC>
    <profile>
    <blah>
    <blah>
    <foo>
    <bar>
<root>
Run Code Online (Sandbox Code Playgroud)

我希望能够获取“profile”节点,然后遍历它的子节点(“childA”、“childB”等)

到目前为止,我的代码如下所示:

$doc = new DomDocument();
$doc->loadXML(file_get_contents("php://input"));
$profile_node = $doc->getElementsByTagName("profile")->item(0);
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好。$profile_node 有我想要的。

在 PHP4 中,我猜你会做这样的事情:

$childnodes = $profile_node->child_nodes();
foreach ($childnodes as $node) {
    // do something with this node
}
Run Code Online (Sandbox Code Playgroud)

但是,我在 PHP5 中找不到 child_nodes() 的等价物。

由于我对 PHP 几乎是一个菜鸟,因此我非常感谢代码示例,因此我可以看到确切的语法。

Zed*_*Zed 6

根据php 手册,DomNode 类有一个公共 $childNodes 变量。您可以直接访问它:

foreach ($profile_node->childNodes as $node) {
    // do something with this node
}
Run Code Online (Sandbox Code Playgroud)