XmlTextReader - Как перебирать узлы - PullRequest
1 голос
/ 25 декабря 2011

Мне нужна помощь с циклическим перемещением по узлам документа XML с использованием XmlTextReader.Использование чего-либо, кроме XmlTextReader, к сожалению, не вариант.

Мой код: <pre> class Program { private static void Main(string[] args) { XmlTextReader reader = new XmlTextReader("http://api.own3d.tv/liveCheck.php?live_id=180491"); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Text: Console.WriteLine("Live: " + reader.Value); break; } } Console.ReadLine(); } }</p> <p>

Используемый XML:

<own3dReply>
 <liveEvent>
  <isLive>true</isLive>
  <liveViewers>225</liveViewers>
  <liveDuration>1222</liveDuration>
 </liveEvent>
</own3dReply>

Что выводится на консоль:


    Live: true
    Live: 225
    Live: 1222

Что нужно вывести:


    Live: true
    Viewers: 225
    Duration: 1222

Нужно перебрать каждый узел и сделать это, а я просто не могу понять.Я пытался использовать операторы switch и while, но мне просто не удается заставить его работать.

1 Ответ

3 голосов
/ 25 декабря 2011

Вместо:

Console.WriteLine("Live: " + reader.Value);

Использование:

Console.WriteLine(string.Format("{0}: {1}", reader.LocalName, reader.Value));

Свойство LocalName дает локальное имя узла (isLive, liveViewers и liveDuration).При необходимости вы можете выполнять с ними больше операций со строками.

...