1

私は現在、php DOMDocumentオブジェクトを使用してxmlドキュメントタグを反復処理するさまざまな方法を学習しています。タグ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 />';
        }
    }
?>
4

1 に答える 1

3
$elements->item(0)->childNodes->item(0)->nodeValue

初め:

$elements

解析および参照された現在の要素$ 。コード例では、次のようになります。

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

次:

->item(0)

ノードリストの最初の$elements アイテムへの参照を取得します。これはゼロインデックスであるため、インデックスによってリスト->item(0)の最初のノードを取得します。

->childNodes

上記で参照されている最初のノードの子ノードのリストを取得します。がないため、これはの(読み取り専用)プロパティです。$elements->item(0)()DOMNodeList

->item(0)

ここでも、インデックスによって子ノードのリストの最初のノードを取得します。

->nodeValue

ノード自体の値。


状態の形式だけの場合:

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

混乱します。メソッドチェーンを調べてください。これは、これらのメソッド呼び出しをすべてまとめるために使用されます。


$注:を省略しましたが、これは慣例によりs1つ以上の可能性があることを示しています。したがって、ゼロまたは1つの要素参照になり、ゼロ、コレクション内の1つ以上になる可能性があります。$element$elements$element

于 2013-03-21T03:08:59.813 に答える