Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取子节点XML-PHP的属性_Php_Xml - Fatal编程技术网

获取子节点XML-PHP的属性

获取子节点XML-PHP的属性,php,xml,Php,Xml,我正在使用XMLDOM和PHP构建一个脚本 $troops = $xmlfile->getElementsByTagName("troops"); foreach( $troops as $troop ) { $sniper = $troop->getElementsByTagName( "sniper" ); $otroop[0] = $sniper->item(0)->nodeValue; $riffle = $troop->get

我正在使用XMLDOM和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


但这是行不通的,这里的任何建议都会对你的代码有帮助。
$sniper
是一个很好的例子。在获得第一个节点的值时,可以正确处理该问题:

$sniper->item(0)->nodeValue
对于第一个节点的属性,必须进行类似操作:

$sniper->item(0)->getAttribute('level')
$sniper->item(0)->nodeValue
$sniper->item(0)->getAttribute('level')