SelectNodes,其属性包含撇号

And*_*s59 5 xpath c#-4.0

我正在尝试使用SelectNodes,其中属性包含带有撇号的文本

属性为oor:path,节点如下所示:

<item oor:path="/org.openoffice.Office.Histories/Histories/org.openoffice.Office.Histories:HistoryInfo['PickList']/OrderList">
Run Code Online (Sandbox Code Playgroud)

我试过这个代码(并且失败了)......

XmlNodeList xnList = xml.SelectNodes("/oor:items/item[contains(@oor:path, '[&apos;PickList&apos;]/OrderList')]", nsMgr);
Run Code Online (Sandbox Code Playgroud)

请帮忙!

//安德斯

Fré*_*idi 1

&apos;在 XPath 解析器可以看到实体之前,它们会被解析为单引号。因此,从它的角度来看,它们无法与“真正的”单引号区分开来。

您可以使用转义双引号将参数定界contains(),并在表达式中使用单引号:

XmlNodeList xnList = xml.SelectNodes(
    "/oor:items/item[contains(@oor:path, \"['PickList']/OrderList\")]", nsMgr);
Run Code Online (Sandbox Code Playgroud)

或者,也可以使用逐字字符串文字:

XmlNodeList xnList = xml.SelectNodes(
    @"/oor:items/item[contains(@oor:path, ""['PickList']/OrderList"")]", nsMgr);
Run Code Online (Sandbox Code Playgroud)