如何在C#中解析这个简单的XML?
我想在C#中解析SOAP xml响应(但我不能使用标准SOAP接口,因为wsld不正确) 解析时,我希望所有元素都有名称(列出元素名称)并访问其所有子元素 XML的总体外观:如何在C#中解析这个简单的XML?,c#,xml,parsing,C#,Xml,Parsing,我想在C#中解析SOAP xml响应(但我不能使用标准SOAP接口,因为wsld不正确) 解析时,我希望所有元素都有名称(列出元素名称)并访问其所有子元素 XML的总体外观: <return> <item> <attr1>1</attr1> <attr2>X</attr2> </item> <item> <attr1>2</attr1> &l
<return>
<item>
<attr1>1</attr1>
<attr2>X</attr2>
</item>
<item>
<attr1>2</attr1>
<attr2>Y</attr2>
</item>
...
</return>
1.
X
2.
Y
...
关于您可以使用XmlDocument类或XElement类解析xml您可以使用一些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
};
使用LINQtoXML,只需执行以下操作
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")
};
Google将Linq转换为XML。在我看来,这是将简单xmlOr解析为动态XML的最简单方法(自.NET4以来)
XmlDocument doc = new XmlDocument();
doc.Load(“myxml.xml");
foreach(XmlNode xn in doc)
{
foreach(XmlElement element in xn)
{
//do something
}
}