':' символ, шестнадцатеричное значение 0x3A, не может быть включен в имя

У меня есть XML-файл, который содержит его элемент как

<ab:test>Str</ab:test>  

Когда я пытаюсь получить доступ к нему с помощью кода:

XElement tempElement = doc.Descendants(XName.Get("ab:test")).FirstOrDefault();

Это дает мне эту ошибку:

Система. Сеть. Сервисы. Протоколы. SoapException: Сервер не мог обработать запрос.---> Система. Xml. XmlException: ':' символ, шестнадцатеричное значение 0x3A, не может быть включен в имя.

Как я должен получить доступ к нему?

73
задан yoozer8 17 January 2013 в 18:17
поделиться

2 ответа

Если вы хотите использовать пространства имен, LINQ to XML упрощает это:

XNamespace ab = "http://whatever-the-url-is";
XElement tempElement = doc.Descendants(ab + "test").FirstOrDefault();

Найдите раздел xmlns: ab = ... в своем документе, чтобы узнать, URI какого пространства имен "ab" относится к.

110
ответ дан 24 November 2019 в 12:16
поделиться

Существует перегрузка метода Get, который вы, возможно, захотите попробовать, который учитывает пространство имен. Попробуйте следующее:

XElement tempElement = doc.Descendants(XName.Get("test", "ab")).FirstOrDefault();
7
ответ дан 24 November 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: