在xpath中,如何将text()与\r\n(换行符)进行比较?

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

我要获取节点:

//脚本[以(text().\r\nvar name')开头]

但xpath似乎无法识别转义字符。你知道如何匹配它们吗

注意:我使用的是html敏捷包

使用

//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的人可能会提供一些解决方法。