首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取子节点的属性XML - PHP

获取子节点的属性XML - PHP
EN

Stack Overflow用户
提问于 2013-01-25 17:12:15
回答 1查看 1.8K关注 0票数 2

我正在使用XML、DOM和PHP构建一个脚本

代码语言:javascript
复制
$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

代码语言:javascript
复制
<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>

我希望能够拉出每个节点的级别以及我已经尝试过的级别

代码语言:javascript
复制
$oresearch[0] = $sniper->getAttribute("level");

但这并不管用,这里的任何建议都会有所帮助

EN

回答 1

Stack Overflow用户

发布于 2013-01-25 17:19:59

在您的代码中,$sniper是一个DOMNodeList。在获取第一个节点的值时,您可以正确地处理该问题:

代码语言:javascript
复制
$sniper->item(0)->nodeValue

对于第一个节点的属性,您必须执行类似的操作:

代码语言:javascript
复制
$sniper->item(0)->getAttribute('level')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14518624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档