当前位置:  开发笔记 > 编程语言 > 正文

使用PHP进行XPath查询

如何解决《使用PHP进行XPath查询》经验,为你挑选了3个好方法。

这是我正在使用的XML代码:


    
        
            $2.50
            20
        
        
            $3.00
            20
        
        
            $1.50
            10
        
    

然后我写了一个简单的代码来练习使用XPath:

load('sample.xml');

    $xpathvar = new Domxpath($xmldoc);

    $queryResult = $xpathvar->query('//lemonade/price');
    foreach($queryResult as $result) {
        echo $result->textContent;
    }
?>

该代码运行良好,按预期输出所有柠檬水价格值.现在,当我更改查询字符串以仅选择属性设置为某个值的元素时,例如

//柠檬水[供应商= "母亲"] /价格

要么

//柠檬水[ID = "1"] /价格

它不起作用,根本没有输出.我究竟做错了什么?



1> bobwienholt..:

试试这个:

//lemonade[@id="1"]/price

要么

//lemonade[@supplier="mother"]/price

如果没有"@",它会查找具有该名称的子元素而不是属性.



2> Tirno..:

这只是切线相关,但是当您在知道结构的文档上使用XPath时,请不要使用"// some-element-name".这是一个非常好的快速示例,但是当您使用该查询命中一个巨大的xml文件时,特别是如果它后面跟着一些复杂的东西,您将很快遇到性能问题.

库存/饮料/柠檬水[@供应商= "妈妈"] /价格



3> Kris..:

你必须使用@符号来表示谓词中的属性,如下所示://lemonade[@supplier="mother"]/price那就是全部.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有