我学习了W3Schools上的教程。
syntax.asp
上面写着:
节点选择命名节点的所有子节点。 书店选择书店元素的所有子节点。
这是我的密码
bookstore.xml:
<?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文件:
<?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“可以选择书店元素的所有子节点。
有人能告诉我为什么我有一个空数组吗?谢谢!
发布于 2010-09-30 15:42:23
使用
/*/book甚至
/*/*当然,您也可以使用
/bookstore/book甚至
/child::bookstore/child::book给定所提供的XML文档,所有上述表达式都准确地选择了想要的节点--文档中的所有book元素。
// abbreviation总是尽量避免使用,因为它可能导致非常低效率的评估。
发布于 2010-09-30 12:29:33
该语句应该是:选择名称为的所有子节点。
这就是为什么它在规范 1 2中被称为12的原因。
如果您想要book元素:
/bookstore/bookhttps://stackoverflow.com/questions/3830233
复制相似问题