2015-05-17 4 views
1

Я читаю данные с внешнего сервера. Данные поступают в порядке, и я могу установить все текстовые значения, но когда я пытаюсь читать в тэге, он не работает. Моя общая цель - заполнить dataGridView именами тегов в одном столбце и значениями тегов в другом. Чтобы повторить, у меня есть значение тега, но не имя тега. Код проблема:XmlReader.Name возвращает пустое значение

if (xmlRead.NodeType == XmlNodeType.Text){ 
    Console.WriteLine(xmlRead.Name + " : " + xmlRead.Value); 
} 

где xmlRead это мой XmlReader.

В результате : Beef

Формат данных Пример <type>Beef</type>

ответ

4

Допустим, вы имели XML структурированную как:

<element>Some Text</element> 

Сначала XmlReader будет первым ударил узел с типом XmlNodeType.Element название element и пустой Value.

Тогда он ударил бы по узлу с типом XmlNodeType.Text, без имени и значением "Some Text".

Тогда он ударил бы по узлу с типом XmlNodeType.EndElement, именем element и пустым Value.

Вы пытаетесь получить имя в точке, где его нет. Либо получите имя, когда вы прочитаете элемент, а затем прочитаете текстовый узел или, возможно, после чтения элемента и получите его имя, немедленно вызовите ReadElementContentAsString(), чтобы получить содержимое внутренних текстовых узлов.

0

текстовый узел не имеет имени, поэтому xmlRead.Name никогда не будет возвращать один.

Смежные вопросы