首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML DOMXPath搜索

XML DOMXPath搜索
EN

Stack Overflow用户
提问于 2011-05-16 23:02:25
回答 1查看 453关注 0票数 1
代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<root>
     <channel>
          <item>
                <category>Cat1</category>
          </item>
          <item>
                <category>Cat1</category>
          </item>
          <item>
                <category>Cat2</category>
          </item>
          <item>
                <category>Cat3</category>
          </item>
     </channel>    
</root>

我有这个xml,我如何在不重复的情况下获得一个项目的最后一个类别?我试着:

代码语言:javascript
复制
<?php
        $DOMDocument = new DOMDocument( '1.0', 'utf-8' );
        $DOMDocument->preserveWhiteSpace = false;
        $DOMDocument->load( 'xml.xml' );
        $DOMXPath = new DOMXPath( $DOMDocument );
        foreach( $DOMXPath->query('.//channel/item/category[last()]/parent::node()') as $Nodes ){
                 foreach( $Nodes->childNodes as $Node ){
                          $RSS[ $Node->nodeName ] = $Node->nodeValue;
                 }
                 $RSSContents[] = $RSS;
        }
        echo '<pre>';
        print_r( $RSSContents );

但是反驳:

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [category] => Cat1
        )

    [1] => Array
        (
            [category] => Cat1
        )

    [2] => Array
        (
            [category] => Cat2
        )

    [3] => Array
        (
            [category] => Cat3
        )

)

我需要退还cat 1+其他物品中的最后一个

EN

回答 1

Stack Overflow用户

发布于 2011-05-16 23:24:11

下面的XPath应该选择文档中每个类别的最后一项

代码语言:javascript
复制
/root/channel/item[not(category = following::category)]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6019306

复制
相关文章

相似问题

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