写入xml 方法:
public void WritetokenToXml(string _token)
{
string file = Server.MapPath("~/pages/token.xml");
if (File.Exists(file))
{
XmlDocument xml = new XmlDocument();
xml.Load(file);
XmlNodeList node = xml.SelectNodes("tokens/token");
int count = Convert.ToInt32(node.Item(node.Count - 1).ChildNodes.Item(0).InnerText);
count++;
XmlElement ab = xml.CreateElement("token");
StringBuilder s = new StringBuilder();
s.Append("<count>" + count + "</count>");
s.Append("<data>" + DateTime.Now + "</data>");
s.Append("<content>" + _token + "</content>");
ab.InnerXml = s.ToString();
xml.DocumentElement.AppendChild(ab);
xml.Save(file);
}
else
{
Response.Write("文件不存在");
}
}
public void WritetokenToXml(string _token)
{
string file = Server.MapPath("~/pages/token.xml");
if (File.Exists(file))
{
XmlDocument xml = new XmlDocument();
xml.Load(file);
XmlNodeList node = xml.SelectNodes("tokens/token");
int count = Convert.ToInt32(node.Item(node.Count - 1).ChildNodes.Item(0).InnerText);
count++;
XmlElement ab = xml.CreateElement("token");
StringBuilder s = new StringBuilder();
s.Append("<count>" + count + "</count>");
s.Append("<data>" + DateTime.Now + "</data>");
s.Append("<content>" + _token + "</content>");
ab.InnerXml = s.ToString();
xml.DocumentElement.AppendChild(ab);
xml.Save(file);
}
else
{
Response.Write("文件不存在");
}
}
读取方式 :
XmlDataDocument doc = new XmlDataDocument();
doc.Load("/pages/token.xml"); 这种方式会报一个错 找不到路径。。。。。
XmlNodeReader read = new XmlNodeReader(doc);
这种方式读取是最好的:用Server.MapPath 对象
string file = Server.MapPath("~/pages/token.xml");
if (File.Exists(file))
{
XmlDocument xml = new XmlDocument();
xml.Load(file);
}
读取第一个 token 节点 如下:
XmlNode node = doc.SelectSingleNode("//token");
if (node != null)
{
string str=node.SelectSingleNode("content").InnerText;
Response.Write(node.SelectSingleNode("content").InnerText);
}
SelectSingleNode() 方法的用法 ; 读取一个节点
读取所有的token 节点 如下:
XmlNodeList list = doc.SelectNodes("//token");
Response.Write(list.Count);
foreach(XmlNode xn in list)
{
Response.Write(xn.SelectSingleNode("count").InnerText+"----"+xn.SelectSingleNode("data").InnerText+"-----"+xn.SelectSingleNode("content").InnerText+"-----");
Response.Write(xn.InnerText);
}
SelectNodes() 方法的用法 读取的是节点集合
读取xml 出现的路径问题,,,,,
当我写相对路径时 总报错,,找不到路径文件“
如: 未能找到路径“C:\Program Files\Common Files\Microsoft Shared\DevServer\pages\token.xml”的一部分。
写上绝对路径才运行成功。
那到底该怎么写 相对路径呢??
string file = Server.MapPath("~/pages/token.xml"); 这样写才正确。 网站的虚拟路径
./当前目录
/网站主目录
../上层目录
~/网站虚拟目录
以上4种需要注意