我正在尝试使用SelectNodes,其中属性包含带撇号的文本
该属性为oor:path,该节点如下所示:
<item oor:path="/org.openoffice.Office.Histories/Histories/org.openoffice.Office.Histories:HistoryInfo['PickList']/OrderList">
我已经尝试过使用此代码(但失败了)...
XmlNodeList xnList = xml.SelectNodes("/oor:items/item[contains(@oor:path, '['PickList']/OrderList')]", nsMgr);
请帮忙!
//安德斯
最佳答案
在XPath解析器可以看到之前,'
实体被解析为单引号。因此,从其角度看,它们不能与“真实”单引号区分开。
您可以使用转义的双引号将参数定为contains()
,并在表达式中使用单引号:
XmlNodeList xnList = xml.SelectNodes(
"/oor:items/item[contains(@oor:path, \"['PickList']/OrderList\")]", nsMgr);
或者,或者使用逐字字符串文字:
XmlNodeList xnList = xml.SelectNodes(
@"/oor:items/item[contains(@oor:path, ""['PickList']/OrderList"")]", nsMgr);
关于c#-4.0 - 具有包含撇号的属性的SelectNodes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7865337/