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 и сообщение содержит "Префикс пространства имен * не определен", а затем пропустите его, но мне это действительно не нравится.

Другие вопросы по тегам