下边的关于代码有什么问题吗?为什么添加节点总不成功?
using System;using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.IO;
namespace test
{
class Program
{
static void Main(string[] args)
{
createXml();//创建文件和添加基本数据,便于之后操作实验
addItem();//追加数据
Console.ReadKey();
}
private static void createXml()
{
XmlTextWriter writer = new XmlTextWriter(@"F:\C#\Create Learning\Destination\titles.xml", null);
//使用自动缩进便于阅读
writer.Formatting = Formatting.Indented;
//写入根元素
writer.WriteStartElement("items");
writer.WriteStartElement("item");
//写入属性及属性的名字
writer.WriteAttributeString("类别", "文学");
writer.WriteAttributeString("品质", "优");
//加入子元素
writer.WriteElementString("title", "毛著");
writer.WriteElementString("author", "毛泽东");
writer.WriteElementString("price", "10.0");
//关闭根元素,并书写结束标签
writer.WriteEndElement();
writer.WriteEndElement();
//将XML写入文件并且关闭XmlTextWriter
writer.Close();
}
private static void addItem()
{
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"F:\C#\Create Learning\Destination\titles.xml");
XmlNode root = xmlDoc.SelectSingleNode("items");
XmlElement xe1 = xmlDoc.CreateElement("item");
xe1.SetAttribute("类别", "张三");
xe1.SetAttribute("品质", "老师");
XmlElement xmlsub1 = xmlDoc.CreateElement("title");
xmlsub1.InnerText = "wahahha";
xe1.AppendChild(xmlsub1);
XmlElement xmlsub2 = xmlDoc.CreateElement("author");
xmlsub2.InnerText = "三毛";
xe1.AppendChild(xmlsub2);
XmlElement xmlsub3 = xmlDoc.CreateElement("Price");
xmlsub3.InnerText = "15.00";
xe1.AppendChild(xmlsub3);
root.AppendChild(xe1);
xmlDoc.Save("titles.xml");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.ReadKey();
}
}
}
}
--------------------编程问答-------------------- --------------------编程问答-------------------- 操作都是对的,就是最后save的时候文件路径要写出来:
xmlDoc.Save(@"F:\C#\Create Learning\Destination\titles.xml"); --------------------编程问答-------------------- XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"F:\C#\Create Learning\Destination\titles.xml");
XmlNode root = xmlDoc.SelectSingleNode("items");
这里选择位置错误,你要添加的是子节点应该是
XmlNode nodeList = xmlDoc.SelectSingleNode("PRODUCTDATA").ChildNodes; XmlElement xe1 = xmlDoc.CreateElement("item");
补充:.NET技术 , C#