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"。这个要怎么实现
<?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"。这个要怎么实现
XmlElement newGroup = userdoc.CreateElement("created_at");
newGroup.Value = ("statuses");//没有就不写
userdoc.DocumentElement.AppendChild(newGroup);
userdoc.Save("c:\\1.xml");
能不能详细点、、刚入门C#..要using 哪个类都不清楚。。纯小白
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;
}
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);
}
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);
}
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("xml.xml ");但是我那个created_at结点在第二个个status里不存在。找不到,直接跳过了。
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*/
{
Console.WriteLine( l.ToString());
}用这个输出时,有NullReferenceException异常
//或
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
*/