2

XML DOM と PHP を使用してスクリプトを作成しています

$troops = $xmlfile->getElementsByTagName("troops");

foreach( $troops as $troop ) {

    $sniper = $troop->getElementsByTagName( "sniper" );
    $otroop[0] = $sniper->item(0)->nodeValue;

    $riffle = $troop->getElementsByTagName( "riffle" );
    $otroop[1] = $riffle->item(0)->nodeValue;

    $riffle = $troop->getElementsByTagName( "shooter" );
    $otroop[2] = $riffle->item(0)->nodeValue;

    $riffle = $troop->getElementsByTagName( "missle" );
    $otroop[3] = $riffle->item(0)->nodeValue;

    $tank = $troop->getElementsByTagName( "tank" );
    $otroop[4] = $tank->item(0)->nodeValue;

    $bomber = $troop->getElementsByTagName( "bomber" );
    $otroop[5] = $bomber->item(0)->nodeValue;

    $patrol = $troop->getElementsByTagName( "patrol" );
    $otroop[6] = $patrol->item(0)->nodeValue;

    $surveillance = $troop->getElementsByTagName( "surveillance" );
    $otroop[7] = $surveillance->item(0)->nodeValue;

}

XML

<troops>
    <sniper level="5">2</sniper>
    <riffle level="0">0</riffle>
    <shooter level="0">0</shooter>
    <missle level="0">0</missle>
    <tank level="0">0</tank>
    <bomber level="0">0</bomber>
    <patrol level="0">0</patrol>
    <surveillance level="0">0</surveillance>
</troops>

私が試したのと同じように、各ノードのレベルをプルできるようにしたい

$oresearch[0] = $sniper->getAttribute("level");

しかし、それはうまくいきません。ここでのアドバイスは役に立ちます

4

1 に答える 1

1

あなたのコード$sniperにはDOMNodeList. 最初のノードの値を取得する場所でそれを正しく処理します。

$sniper->item(0)->nodeValue

最初のノードの属性については、同様に行う必要があります。

$sniper->item(0)->getAttribute('level')
于 2013-01-25T09:19:58.653 に答える