как проверить, существует ли вообще пространство имен? - PullRequest
0 голосов
/ 22 октября 2018

Мы можем перечислить все пространства имен с помощью следующего метода:

public static class NamespaceGetter
{
    public static IDictionary<string, string> Get(string xml)
    {
        XPathDocument x = new XPathDocument(new StringReader(xml));
        XPathNavigator foo = x.CreateNavigator();
        foo.MoveToFollowing(XPathNodeType.Element);
        return foo.GetNamespacesInScope(XmlNamespaceScope.All);
    }
}

Однако, если для параметра string xml пространство имен не определено, этот метод будет выброшен.

Например, следующая полезная нагрузка вызовет исключение

<MyXml>
  <Cars>4</Cars>
  <Burgers>3</Burgers>
</MyXml>

Как проверить, имеет ли строка пространство имен XML, определенное как AT ALL?

Вывод для вышеупомянутого вернет:

enter image description here

Это действительно не имеет смысла.

1 Ответ

0 голосов
/ 22 октября 2018

Ваш код выглядит нормально.

Но ваша строка XML недопустима: выброшено исключение:

The 'MyXml' start tag on line 2 position 4 does not match the end tag of 'MyXML'

XML чувствителен к регистру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...