从XML读取值

时间:2014-03-19 05:54:30

标签: c# xml list

我是C#asp.net编码的新手,所以我面临一些问题。 这是我的xml文件。我想检索每个员工的“< DOB>”值,并希望将它们存储在列表中,例如“emps_dob”。请帮我解决一下这个。谢谢你

<?xml version="1.0" encoding="utf-8"?>
<employees>
  <employee>
    <name> Vin </name>
    <DOB> 07/10 </DOB>
    <emailID> vinay@abc.com</emailID>
  </employee>
  <employee>
    <name> ben </name>
    <DOB> 08/11 </DOB>
    <emailID> ben@abc.com</emailID>
  </employee>
  <employee>
    <name> tin </name>
    <DOB> 09/12 </DOB>
    <emailID> tin@abc.com</emailID>
  </employee>

3 个答案:

答案 0 :(得分:5)

您可以按照此post

中给出的答案使用linq
var doc = XDocument.Load("yourfilepath")
var dobs= doc.Root.Elements().Select( x => x.Element("DOB") );


OR

using System;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main( string[] args )
        {
            XDocument doc = XDocument.Load( "XMLFile1.xml" );
            List<string> emps_dob=new List<string>();
            var dobs= doc.Descendants( "DOB" );

            foreach ( var item in dobs)
            {
                emps_dob.Add(item.Value);
            }

        }
    }
}

答案 1 :(得分:1)

XmlDocument xml = new XmlDocument();
xml.LoadXml(myXmlString);  
XmlNodeList xnList = xml.SelectNodes("/employees/employee");
foreach (XmlNode xn in xnList)
{
  string name= xn["name"].InnerText;
  string DOB= xn["name"].InnerText;
  Console.WriteLine("Name: {0} {1}", name, DOB);
}

答案 2 :(得分:0)

using System.Xml;

List<string> dob = new List<string>();
XmlDocument doc = new XmlDocument();
doc.Load("abc.xml");
XmlNode root = doc.DocumentElement;
foreach (XmlNode node1 in root.ChildNodes)
{
        foreach (XmlNode node2 in node1.ChildNodes)
        {
               if (node2.Name.ToString() == "DOB")
                dob.Add(node2.InnerText.ToString());
        }
}