在xpath中,如何将text()与\r\n(换行符)进行比较?
我要获取节点: //脚本[以(text().\r\nvar name')开头] 但xpath似乎无法识别转义字符。你知道如何匹配它们吗 注意:我使用的是html敏捷包使用:在xpath中,如何将text()与\r\n(换行符)进行比较?,xpath,html-agility-pack,Xpath,Html Agility Pack,我要获取节点: //脚本[以(text().\r\nvar name')开头] 但xpath似乎无法识别转义字符。你知道如何匹配它们吗 注意:我使用的是html敏捷包使用: //script[starts-with(., '
var name')] //script [(starts-with(., '
') or starts-with(., '
')) and starts-with(
//script[starts-with(., '
var name')]
//script
[(starts-with(., '
') or starts-with(., '
'))
and
starts-with(substring-after(., '
'), 'var name')
]
大多数情况下,XML由XML解析器规范化,只剩下一个NL字符——因此,如果上述表达式没有选择所需的脚本
元素,请尝试:
//script[starts-with(., '
var name')]
或者,这在两种情况下都有效:
//script[starts-with(., '
var name')]
//script
[(starts-with(., '
') or starts-with(., '
'))
and
starts-with(substring-after(., '
'), 'var name')
]
使用:
//script[starts-with(., '
var name')]
//script
[(starts-with(., '
') or starts-with(., '
'))
and
starts-with(substring-after(., '
'), 'var name')
]
大多数情况下,XML由XML解析器规范化,只剩下一个NL字符——因此,如果上述表达式没有选择所需的脚本
元素,请尝试:
//script[starts-with(., '
var name')]
或者,这在两种情况下都有效:
//script[starts-with(., '
var name')]
//script
[(starts-with(., '
') or starts-with(., '
'))
and
starts-with(substring-after(., '
'), 'var name')
]
使用字符实体\r=
代码>和\n=
代码>使用字符实体\r=
代码>和\n=
。
@MichaelKay:OP使用的是“HTML敏捷包”,它不是XPath 1.0的完整实现——我不知道HAP是否支持normalize-space()
@MichaelKay上述任何一项都不起作用。似乎HAP不认识
@DimitreNovatchev最后一个命令是给你的。@Devela:那么这不是XPath问题。了解HAP的人可能会提供一些解决方法。迪米特的答案当然是正确的。但我会质疑你的设计。是否确实要在不允许前面的其他空格的情况下匹配“var name”?我本以为更好的设计是从(normalize space(.),'var name')开始的。
@MichaelKay:OP使用的是“HTML敏捷包”,它不是XPath 1.0的完整实现——我不知道HAP是否支持normalize-space()
@MichaelKay上述任何一项都不起作用。似乎HAP不认识
@DimitreNovatchev最后一个命令是给你的。@Devela:那么这不是XPath问题。了解HAP的人可能会提供一些解决方法。