如何使用C#从标签之间的XML中检索数据? [英] How to retrieve data from XML between tags using c#?

查看:75
本文介绍了如何使用C#从标签之间的XML中检索数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在对Web服务进行HTTP调用,它以XML格式给出了响应.我现在面临的问题是如何读取元素之间的数据.

I'm making an HTTP call to a webservice which gives me a response in an XML format. The problem that i'm facing right now is on how to read those data which are in between the elements.

下面是我的代码.

        XmlDocument document = new XmlDocument();

        document.Load("http://thecatapi.com/api/categories/list");

        XmlNodeList categoryNodes = document.SelectNodes("//response/data/categories");

        foreach (XmlNode categoryNode in categoryNodes)
        {
            XmlNode category = categoryNode.SelectSingleNode("category");
           var id =categoryNode.Attributes["id"].InnerXml;
           string name = categoryNode.Attributes["name"].InnerText;
        }
        document.Save("test-doc.xml");

这是XML的结构

      <response>
          <data>
             <categories>
                  <category>
                      <id>5</id>
                      <name>boxes</name>
                  </category>
                  <category>
                      <id>8</id>
                      <name>boys</name>
                  </category>
              </categories>
           </data>
       </response>

推荐答案

尝试使用 XElement

try
{
    XElement booksFromFile = XElement.Load("http://thecatapi.com/api/categories/list");

    var category = booksFromFile.Element("data").Element("categories").Elements("category");

    foreach (var element in category)
    {
        var id = element.Element("id").Value;
        var name = element.Element("name").Value; 
    }
    booksFromFile.Save("test-doc.xml");
}
catch (Exception e)
{
    //handle and log the error here
}

这篇关于如何使用C#从标签之间的XML中检索数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆