从c#中的xml文件中获取元素

时间:2014-04-29 05:47:37

标签: c# xml getelementsbytagname

我有一个包含元素的xml文件。 我将xml文件的内容作为字符串存储在我的一个项目中的csv中。我正在从csv中读取该xml的内容,我想要在xml文件的内容中存在的标记数据 我试过这样的。

XmlDocument doc = new XmlDocument();
doc.LoadXml(Convert.ToString(dataRow["XML"]));
var temp = doc.GetElementsByTagName("Mail");

但是我没有将Mail的值变为temp.I应该怎么做?

1 个答案:

答案 0 :(得分:1)

GetElementsByTagName返回XmlNodeListMSDN Reference

// Display all the book titles.
XmlNodeList elemList = doc.GetElementsByTagName("title");

for (int i=0; i < elemList.Count; i++)
{   
    Console.WriteLine(elemList[i].InnerXml);
}  

Linq解决方案:

var xDoc = XDocument.Load(dataRow["XML"].ToString());

var mailList = xDoc.Descendants("Mail")
                   .Select(x => new
                    {
                        MailID = x.Element("MailID").Value
                    })
                    .ToList();

<强>更新

XmlDocument doc = new XmlDocument();
doc.LoadXml(Convert.ToString(dataRow["XML"]));
var temp = doc.GetElementsByTagName("Mail");

// loop through all retrieved "Mail" elements 
foreach(XmlElement xElem in temp)
{
     string sMailText = xElem.InnerText;
}