Объекты '
преобразуются в одинарные кавычки, прежде чем парсер 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);