首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >扫描整个XML文件,只抓取所需的节点

扫描整个XML文件,只抓取所需的节点
EN

Stack Overflow用户
提问于 2014-09-17 10:54:59
回答 1查看 88关注 0票数 0

请忽略XML数据的语义。我希望扫描整个xml文件,只获取香蕉值,并将它们作为一个数组存储在PHP中。

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<fruits>
    <fruit id="1" >
        <aisle1>
            <apple>aa</apple>
            <banana>ab</banana>
            <cherry>ac</cherry>
            <damson>ad</damson>
        </aisle1>
        <aisle2>
            <apple>none</apple>
            <banana>3708650582321691833</banana>
            <cherry>none</cherry>
            <damson>none</damson>
        </aisle2>
        <aisle3>
            <apple>none</apple>
            <banana>3708650582321691833</banana>
            <cherry>none</cherry>
            <damson>none</damson>
        </aisle3>
    </fruit>
    <fruit id="2" >
        <aisle1>
            <apple>none</apple>
            <banana>3708650582321691833</banana>
            <cherry>none</cherry>
            <damson>none</damson>
        </aisle1>
        <aisle2>
            <apple>none</apple>
            <banana>3708650582321691833</banana>
            <cherry>none</cherry>
            <damson>none</damson>
        </aisle2>
        <aisle3>
            <apple>none</apple>
            <banana>3708650582321691833</banana>
            <cherry>none</cherry>
            <damson>none</damson>
        </aisle3>
    </fruit>
</fruits>

xPath允许我这样做吗?我目前有:

代码语言:javascript
运行
复制
$xml->xpath("//fruits//fruit//bananas->text()";

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-17 11:15:46

如果您只是对该特定节点感兴趣,只需直接查询:

代码语言:javascript
运行
复制
$just_bunch_of_bananas = array();
$bananas = $xml->xpath('//banana'); // directly get it
foreach($bananas as $banana) { // loop each banana node :)
    echo $banana . '<br/>';
    $just_bunch_of_bananas[] = (string) $banana;
}

逐行:

代码语言:javascript
运行
复制
$rows = array();
$fruits = $xml->xpath('//fruit');
foreach($fruits as $fruit) {
    foreach($fruit as $row => $aisles) {
        $rows[] = array('apple' => (string )$aisles->apple, 'banana' => (string )$aisles->banana);
    }
}

echo '<pre>';
print_r($rows);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25888685

复制
相关文章

相似问题

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