XmlTextReader - 如何遍历节点

时间:2011-12-25 18:12:22

标签: c# xml loops xmltextreader

我需要使用XmlTextReader循环遍历XML文档的节点。不幸的是,使用除XmlTextReader之外的任何其他东西都不是一种选择。

我的代码:

    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();
        }
    }

使用的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 个答案:

答案 0 :(得分:3)

而不是:

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

使用:

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

LocalName属性为您提供节点的本地名称(isLiveliveViewersliveDuration)。如果需要,你可以对它们进行更多的字符串操作。