【问题标题】:How to retrieve data from XML between tags using c#?如何使用 c# 从标签之间的 XML 检索数据?
【发布时间】:2019-12-06 00:52:44
【问题描述】:

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

下面是我的代码。

        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>

【问题讨论】:

  • 你能在你的问题中添加一点xml结构吗?
  • @Bosco 这是结构。我忘了这个。

标签: asp.net xml model-view-controller xmlhttprequest innertext


【解决方案1】:

尝试使用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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    相关资源
    最近更新 更多