Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xpath选择注释内的节点_Xpath - Fatal编程技术网

xpath选择注释内的节点

xpath选择注释内的节点,xpath,Xpath,是否可以在注释中选择使用xpath学习XML <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <!--<book> <title lang="eng">Learning XML</title> <price>39.9

是否可以在注释中选择使用xpath学习XML

<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>

哈利·波特
29.99

您可以通过以下方式实现:

//bookstore/book/following::comment()[1]
这将导致:

<!--<book>
<title lang="eng">Learning XML</title>
   <price>39.95</price>
</book>
-->

使用XPath 3.0,您可以使用
fn:parse xml
再次解析注释。这将产生一个普通的XML元素,您现在可以使用标准的XPath表达式来遍历它

parse-xml(/bookstore//comment())/book/title

注释中没有节点。注释只包含文本。如果您知道注释的内容是格式良好的XML,那么您可以读取文本,将其传递给XML解析器,并处理生成的树。使用XPath 3.0或处理器扩展,您可以在一个XPath表达式中完成所有这些操作。

为什么要进行向下投票?这是非常合理的question@akhterwahab在我的例子中,没有考虑regex。@MikeYin您可以使用“//comment()”来选择注释,如果没有考虑regex,您可以使用任何xpath字符串方法从中获得所需的部分。这只是给您注释,而不是
元素。@dirkk不,我不这么认为。表达式将在comment中生成完整的book元素,如图所示。这正是我所说的。它返回整个注释,即
元素,而OP只对
元素感兴趣