XML文件
<?xml version="1.0" encoding="UTF-8"?>
  <statuses>
    <status>
      <created_at>111111111111</created_at>
      <id>9253344710</id>
    </status>
    <status>
      <id>9253344710</id>
    </status>
    <status>
      <created_at>33333333333</created_at>
      <id>9253344710</id>
    </status>
</statuses>有一个String a[3] 字符串数组用来存created_at的结点,因为第一个status结点有created_at结点,所以a[0]存"111111111111";第二个status结点没有created_at结点,所以a[1]存null;第三个status结点有created_at结点,所以a[2]存"33333333333"。这个要怎么实现

解决方案 »

  1.   

    类似                    userdoc.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\"?>< statuses ></statuses >");
                        XmlElement newGroup = userdoc.CreateElement("created_at");
                        newGroup.Value = ("statuses");//没有就不写
                        userdoc.DocumentElement.AppendChild(newGroup);
                        userdoc.Save("c:\\1.xml");
      

  2.   


    能不能详细点、、刚入门C#..要using 哪个类都不清楚。。纯小白
      

  3.   

    在msdn 输入System.XML自己找吧,要学会自立更生
      

  4.   


       using    System;   
       using    System.Xml;   
       using    System.Xml.XPath; 
    //读取xml    返回list public List<string> getVersion()
            {             List<string> list = new List<string>();
                XmlDocument xmldoc = new XmlDocument();         //获取物理路径
                string path = Server.MapPath("/Version/version.xml");    //加载xml文档...
                xmldoc.Load(path);    //第一个节点
                XmlNode xmlnode = xmldoc.SelectSingleNode("JLVersion");    //遍历子节点            foreach (XmlNode node in xmlnode)
                {
                    list.Add(node.ChildNodes[0].InnerText);
                    list.Add(node.ChildNodes[1].InnerText);
                }
                return list;
            }
      

  5.   

    using System.Xml;XmlDocument xmlDoc = new XmlDocument("Xml文件路径");
    XmlNode[] nodes = xmlDoc.SelectNodes("//status");
    List<string> createdAtList = new List<string>();
    foreach(XmlNode node in nodes)
    {
       if (node.ChildNodes["created_at"] != null)
          createdAtList.Add(node.ChildNodes["created_at"].InnerText);
       else
          createdAtList.Add(null);
    }
      

  6.   

    修改下:
    XmlDocument xmlDoc = new XmlDocument("Xml文件路径");
    XmlNodeList nodes = xmlDoc.SelectNodes("//status");
    List<string> createdAtList = new List<string>();
    foreach(XmlNode node in nodes)
    {
       XmlNode findNode = node.SelectSingleNode("created_at");
       if (findNode != null)
          createdAtList.Add(findNode.Value);
       else
          createdAtList.Add(null);
    }
      

  7.   

    XmlDocument定义新对象好像应该得这样
    XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load("xml.xml ");但是我那个created_at结点在第二个个status里不存在。找不到,直接跳过了。
      

  8.   

    所以读取的是所有status节点。
      

  9.   

    有点懂了,我再试试。顺便问List 在C#里要怎么输出
      

  10.   

            string[] a3 = new string[3];
            var xml = from x in XElement.Load(path).Descendants("status") select x;
            int i=0;
            foreach (var x in xml)
            {
                if (x.Element("created_at") != null)
                    a3[i] = x.Element("created_at").Value;
                else
                    a3[i] = "null";
                i++;
            }
            foreach (string s in a3)
            {
                Response.Write(s + "<br/>");
            }
    /*111111111111
    null
    33333333333*/
      

  11.   

    回复10楼foreach (string l in createdAtList)
                {
                    Console.WriteLine( l.ToString()); 
                }用这个输出时,有NullReferenceException异常
      

  12.   


    //或
            string[] a3 = new string[3];
            XmlDocument xml = new XmlDocument();
            xml.Load(path);
            XmlNodeList node = xml.SelectNodes("/statuses/status");
            for(int i=0;i<node.Count;i++)
            {
                if (node[i].SelectSingleNode("created_at") != null)
                    a3[i] = (node[i].SelectSingleNode("created_at") as XmlElement).InnerText;
                else
                    a3[i] = "null";
            }
            foreach (string s in a3)
            {
                Response.Write(s + "<br/>");
            }
    /*
    111111111111
    null
    33333333333
    */
      

  13.   

    你不说当 created_at为空时放null吗Console.WriteLine( l.ToString());  别.ToString()了,本来就是 stringConsole.WriteLine(l);