码迷,mamicode.com
首页 > 其他好文 > 详细

XPATH之normalize-space(.)和normalize-space(text())区别

时间:2018-12-14 21:04:33      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:ali   ken   none   解释   bsp   space   字符   lis   opera   

normalize,字面意思就是正规化,加上space大概意思就是空格的处理了。

官方解释是这样的:

通过去掉前导和尾随空白并使用单个空格替换一系列空白字符,使空白标准化。如果省略了该参数,上下文节点的字符串值将标准化并返回。

 

.是当前节点。如果在需要字符串的地方使用它(例如作为参数normalize-space()),引擎会自动将节点转换为节点的字符串值,对于元素来说,该元素是元素内连接的所有文本节点。

text() 另一方面仅选择作为当前节点的直接子节点的文本节点。

例如,给定XML:

<a>Foo
    <b>Bar</b>
  lish
</a>

假设<a>是你当前的节点,normalize-space(.)将返回Foo Bar lish,但normalize-space(text())会失败,因为text()返回两个文本节点(Foolish)的节点集,它normalize-space()不接受。

长话短说,如果你想标准化一个元素中的所有文本,请使用.。如果要选择特定的文本节点,请使用text(),但请始终记住尽管名称不同,但会text()返回一个节点集,如果节点集只有一个元素,它将自动转换为字符串。

XPATH之normalize-space(.)和normalize-space(text())区别

标签:ali   ken   none   解释   bsp   space   字符   lis   opera   

原文地址:https://www.cnblogs.com/songzhenhua/p/10121504.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!