这两个XPath表达式之间的区别是什么?

时间:2017-04-21 07:20:30

标签: javascript html xpath

有两个XPath表达式:

//LI/A[normalize-space()="fullscreen"]
//LI/A["fullscreen"]

据我所知,normalize-space()用于修剪字符串,如documentation中所述。那么这两个表达式应该具有相同的含义吗?

但可以评估第一个元素,以便在this web page中找到元素:

document.evaluate('//LI/A[normalize-space()="fullscreen"]', document).iterateNext();

,而第二个将找到不同的元素。

它们之间的区别是什么?

1 个答案:

答案 0 :(得分:1)

第二个表达实际上没有多大意义。您设置为筛选select distinct a.username, a.mobile from t_clm_ap30_user a, T_CLM_AP30_RIGHT_AUTH t where a.user_id = t.user_id and t.right_id = rightid and t.poolorgrange = to_char(orgid) ; 元素的唯一条件是“全屏”字符串,该字符串将始终评估为true。换句话说,a相当于//LI/A["fullscreen"]

您可能打算检查元素的字符串值对//LI/A

fullscreen

同样重要的是要注意,当调用//LI/A[. = "fullscreen"] 时没有参数时,它会自动使用当前节点的字符串值作为参数。元素的节点字符串值为all text nodes within the element concatenated