如何在C#中解析这个简单的XML?

时间:2010-04-13 13:06:54

标签: c# xml parsing

我想在C#中解析SOAP xml响应(但我不能使用标准SOAP接口,因为wsld不正确)。

解析时我希望所有元素都带有名称(带有名字的列表元素)以及对其所有子元素的访问权。

XML的整体外观:

<return>
  <item>
   <attr1>1</attr1>
   <attr2>X</attr2>
  </item>
  <item>
   <attr1>2</attr1>
   <attr2>Y</attr2>
  </item>
...
</return>

此致

4 个答案:

答案 0 :(得分:2)

你可以使用一些linq语法来获取你的xml。从新的使用

开始
using System.Xml.Linq;

然后你可以写一个linq查询来打开你的xml文件。 (在我的示例中,它是一个Web应用程序,但您可以更改它)只需获取要对要解析的元素进行分组的元素的后代。然后对结果做点什么。在我的情况下,我使用我想要的确切值填充一个新对象。

XDocument changesetXML = XDocument.Load(Server.MapPath(@"~\changesets.xml"));

return from changeset in changesetXML.Descendants("Changeset")
       select new NewsTopic
       {
           DateAdded = changeset.Element("Date").Value,
           Content = changeset.Element("Summary").Value
       };

答案 1 :(得分:1)

使用LINQ to XML,就像执行以下

之类的操作一样简单
XDocument document = XDocument.Load(fileName); // or .Parse(string) + other methods

var query = from item in document.Descendants("item")
            select new 
            {
               Attr1 = (int)item.Element("attr1"),
               Attr2 = (string)item.Element("attr2")
            };

答案 2 :(得分:0)

您可以使用XmlDocument类或XElement类

解析xml

答案 3 :(得分:0)

XmlDocument doc = new XmlDocument();
doc.Load(“myxml.xml");

foreach(XmlNode xn in doc) 
  {
  foreach(XmlElement element in xn)
    {
  //do something

    }
}