如何使用 C# 转义 XPath 引号“”

Posted

技术标签:

【中文标题】如何使用 C# 转义 XPath 引号“”【英文标题】:How to escape XPath quotes "" with C# 【发布时间】:2021-05-26 07:34:33 【问题描述】:

我正在尝试使用 XPath 和 htmlAgilityPack 抓取 Pinterest,但 XPath 写入 "" (//*(@id="XX") 来表示 id 属性值,因此在 C# 中字符串被拆分并且出现语法错误。 ("["@id="XX(error)"]") 我该怎么办?

【问题讨论】:

您需要提供要抓取的内容的示例,以及不正常的 C# 源代码。否则,我们将不得不猜测您的操作方式,我建议您查看***.com/questions/14480724/… 【参考方案1】:

首先,修复您的 XPath 语法错误:将 //*(@id="XX" 更改为 //*[@id="XX"]

然后,要将//*[@id="XX"] 表示为 C# 字符串,请使用 C# 转义或 XPath 替代属性值分隔符。

C# 转义

通过\"在C#中转义"

"//*[@id=\"XX\"]"

或通过逐字字符串文字语法

@"//*[@id=""XX""]"

XPath 替代属性值分隔符

使用' 作为属性值分隔符,XML 和 XPath 都允许:

"//*[@id='XX']"

另见

Escape double quotes in a string (C#) Escape double quote character in XML(XML 和 XPath)

【讨论】:

以上是关于如何使用 C# 转义 XPath 引号“”的主要内容,如果未能解决你的问题,请参考以下文章

使用正则表达式在 C# 中使用转义引号查找带引号的字符串

如何使用 XPath 选择带有引号字符的文本?

使用 sshpass 时如何转义单引号

在一个查询中使用 MySqlCommand 将多条记录插入 MySQL C# (MySQLConnector) & command 转义引号的参数

使用/解析远程变量时如何正确转义单引号? [复制]

使用正则表达式查找 C# 样式的未转义字符串