我想在C#中解析SOAP xml响应(但我不能使用标准SOAP接口,因为wsld不正确)。
解析时我希望所有元素都带有名称(带有名字的列表元素)以及对其所有子元素的访问权。
XML的整体外观:
<return>
<item>
<attr1>1</attr1>
<attr2>X</attr2>
</item>
<item>
<attr1>2</attr1>
<attr2>Y</attr2>
</item>
...
</return>
此致
答案 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
}
}