我正在使用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");但这并不管用,这里的任何建议都会有所帮助
发布于 2013-01-25 17:19:59
在您的代码中,$sniper是一个DOMNodeList。在获取第一个节点的值时,您可以正确地处理该问题:
$sniper->item(0)->nodeValue对于第一个节点的属性,您必须执行类似的操作:
$sniper->item(0)->getAttribute('level')https://stackoverflow.com/questions/14518624
复制相似问题