将.Net XPath与包含“

时间:2018-11-06 20:20:22

标签: .net xpath

我有一些XPath代码在99%的时间内都能正常工作。但是现在我有一个XML文档,其中包含未转义的字符。在这种情况下,我要查找的字符串类似于“毛里的坏字符串”。

那我该如何构造一个XPath查询来找到这个字符串?我尝试转义:

../a:Data[a:Name='" & NewT.Name.Replace("'", "'") & "'"

但这与文本不匹配。因此,我尝试了:

../a:Data[a:Name='" & NewT.Name.Replace("'", "''") & "'"

但这告诉我搜索字符串中存在无效的令牌。

有人知道这里的诀窍吗?

1 个答案:

答案 0 :(得分:0)

这不是一个完整的解决方案,因为它仅在字符串包含单引号或双引号而不同时包含两个引号的情况下才起作用:

Dim S As String
If Name.Contains("'") Then
    S = ../a:Data[a:Name=""" & Name & """
Else
    S = ../a:Data[a:Name='" & Name & "'"
End If