首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XPath选择特定的nodeName

使用XPath选择特定的nodeName
EN

Stack Overflow用户
提问于 2010-09-30 11:49:54
回答 2查看 1.7K关注 0票数 0

我学习了W3Schools上的教程。

syntax.asp

上面写着:

节点选择命名节点的所有子节点。 书店选择书店元素的所有子节点。

这是我的密码

bookstore.xml:

代码语言:javascript
复制
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <bookstore>
    <book>
      <title lang="eng">Harry Potter</title>
      <price>29.99</price>
    </book>
    <book>
      <title lang="eng">Learning XML</title>
      <price>39.95</price>
    </book>
    </bookstore>

php文件:

代码语言:javascript
复制
    <?php
    $xml = simplexml_load_file("bookstore.xml");
    if(!$xml)
    { 
    echo 'bad';
    }else
    {

    $res = $xml->xpath("//bookstore");

    when I use $res = $xml->xpath("bookstore");
    $xml_res1 = $res1->asXML("booklist.xml");
    }
    ?>

它只返回一个空数组。我只想选择所有的<book>元素(不包括<bookstore><?xml version?>头)

在W3Schools示例中,"// bookstore“可以选择书店元素的所有子节点。

有人能告诉我为什么我有一个空数组吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-30 15:42:23

使用

代码语言:javascript
复制
/*/book

甚至

代码语言:javascript
复制
/*/*

当然,您也可以使用

代码语言:javascript
复制
/bookstore/book

甚至

代码语言:javascript
复制
/child::bookstore/child::book

给定所提供的XML文档,所有上述表达式都准确地选择了想要的节点--文档中的所有book元素。

// abbreviation总是尽量避免使用,因为它可能导致非常低效率的评估。

票数 1
EN

Stack Overflow用户

发布于 2010-09-30 12:29:33

该语句应该是:选择名称为的所有子节点。

这就是为什么它在规范 1 2中被称为12的原因。

如果您想要book元素:

代码语言:javascript
复制
/bookstore/book
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3830233

复制
相关文章

相似问题

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