如何使用 XPath 选择带有引号字符的文本?
Posted
技术标签:
【中文标题】如何使用 XPath 选择带有引号字符的文本?【英文标题】:How to use XPath to select text with a quote character? 【发布时间】:2018-10-10 14:44:15 【问题描述】:如何选择包含带有“”的文本的 xpath
假设我在页面上的文字是:“我的文字”(这包括“”)。
当我在 VS 中创建 xpath 时:
"//td[contains(.,'"mytext">')]"
但是 VS 不认为这是正确的,因为它以白色显示 mytext,就好像它不属于 xpath 一样
它说这是一个语法错误,它需要一个','。
那么我怎样才能制作一个使用包含文本的“”的xpth。
【问题讨论】:
【参考方案1】:答案很简单,转义双引号:
"//td[contains(.,'\"mytext\">')]"
这是需要转义的字符的参考:https://blogs.msdn.microsoft.com/csharpfaq/2004/03/12/what-character-escape-sequences-are-available/
希望对你有帮助。
【讨论】:
那个参考页好像坏了。【参考方案2】:如果 XPath 的上下文是 XML,则使用 "
转义双引号:
//td[contains(.,'"mytext">')]
另见:Simplified XML Escaping
如果您的 XPat 的上下文不是 XML,您可以尝试
//td[contains(.,concat('"','mytext', '"', '>'))]
看看 VS 是否对那个表达式更满意,或者为 "
常量设置一个单独的变量,并从中分段构建您的 XPath。
如果这对您的上下文没有帮助,请参阅 how to escape single quote in xslt substring function
【讨论】:
以上是关于如何使用 XPath 选择带有引号字符的文本?的主要内容,如果未能解决你的问题,请参考以下文章