我正在尝试使用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, '['PickList']/OrderList')]", nsMgr);
Run Code Online (Sandbox Code Playgroud)
请帮忙!
//安德斯
'
在 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)