SelectSingleNode: пропустить неожиданный путь xpath
Я пытаюсь прочитать значения из XML с помощью xpath. Я уже создал XmlNamespaceManager и добавил в него все префиксы, URI-пары, используя мой xml-файл.
У меня есть набор xpaths, мне нужно пройти по всем xpaths и найти нужные данные из xml.
Я использую код ниже
if (myXmlDocument.DocumentElement != null)
{
var selectSingleNode = myXmlDocument.DocumentElement.SelectSingleNode(xPath, myNamespaceManager);
if (selectSingleNode != null)
value = selectSingleNode.InnerText;
}
Моя проблема заключается в том, что, когда я передаю такой xpath, префикс которого не указан в xml (поэтому мой namespaceManager не содержит своего префикса или пространства имен), он выдаст исключение "Префикс пространства имен" XXX "не определен".
Я просто хочу пропустить такие неожиданные xpaths.
Есть ли хорошее решение для этого?
1 ответ
В качестве быстрого исправления я использую try catch и проверку, имеет ли исключение тип XPathException и сообщение содержит "Префикс пространства имен * не определен", а затем пропустите его, но мне это действительно не нравится.