可以解释这个块代码给我PHP XML DOMDocument语法


Can explain this block Code to me PHP XML DOMDocument Syntax

我目前正在学习使用php DOMDocument对象,我理解通过标签迭代的foreach循环,但$element->item(0)->childNodes->item(0)->nodeValue对我来说有点不清楚,有人可以向我详细解释吗?谢谢你。

<?php
    $xmlDoc = new DOMDocument();
    $xmlDoc->load('StudentData.xml');
    $studentRoot = $xmlDoc->getElementsByTagName('Student');
    for ($i = 0; $i < ($studentRoot->length); $i++) {
        $firstNameTags = $studentRoot->item($i)->getElementsByTagName('FirstName');
        echo $firstNameTags->item(0)->childNodes->item(0)->nodeValue.' <br />';
    }
    /* so much easier and clear to understand! */
    foreach($studentRoot as $node) {
        /* For every <student> Tag as a separate node, 
           step into it's child node, and for each child,
           echo the text content inside */  
        foreach($node->childNodes as $child) {
            echo $child->textContent.'<br />';
        }
    }
?>
$elements->item(0)->childNodes->item(0)->nodeValue

:

$elements

当前元素$被解析和引用。在代码示例中,它将是:

$firstNameTags = $studentRoot->item($i)->getElementsByTagName('FirstName');
$firstNameTags->...
下:

->item(0)

获取节点列表中第一个$elements 的引用。由于这是零索引,->item(0)将通过索引获得列表中的第一个节点

->childNodes

获取上面->item(0)引用的第一个$elements节点的子节点列表。由于没有(),所以这是DOMNodeList的属性。

->item(0)
同样,通过索引获取子节点列表中的第一个节点。
->nodeValue

节点本身的值。


如果状态单独的形式:

$obj->method()->method()->prop

让你感到困惑,看看方法链接,它是用来把所有的方法调用放在一起的。


$注意,您省略了s,但这表明根据约定存在一个或多个可能的。因此,$element将是 0或一个元素引用,$elements可能是0,$element集合中的一个或多个。