您的位置:首页 > 其它

.net中xml文件的基本操作

2007-04-04 10:24 253 查看
上周做程序的时候用到了一些xml的知识,今天对这一知识点做一小小的总结,若有不足之处还望见谅!

首先呢,xml文件最重要的就是可以让用户自己定义结点,子结点及属性,这使得存取信息资源更加方便,上面说的这些自定义的规范都是通过个.xsd的(Schema)模式文件来做约束的,至于这个文件怎么样编写,这里先暂且不谈,因为本人也没有写过。下面介绍一下在.net中用程序如何读取与建立一个xml文件。

1.读取与建立

XmlDocument是操作xml文件必须实例化的类,读取现磁盘上已有的xml文件:

创建一个XmlDocument类的一个实例:XmlDocument doc=new XmlDocument();

调用load()方法加载一个磁盘上已有的xml文件,参数是xml文件的完整路径:doc.load("YourXmlFilePath");

下面是用程序建立一个xml文件:上面说过操作xml文件必须实例化XmlDocument类,新建也应如此:

创建一个XmlDocument类的一个实例:XmlDocument doc=new XmlDocument();

XmlDocument类有诸多方法创建xml的结点内容及属性,当然在结点中又可以包含子节点,下面是一个创建一个简单xml文件的例子:

XmlDocument doc = new XmlDocument();
XmlElement chartarea = doc.CreateElement("ChartArea"); //新建一个xml元素,可以包括子节点,属性
XmlElement series = doc.CreateElement("Series");
series.SetAttribute("name", "series1"); //给该节点设置属性
series.SetAttribute("id","001");
doc.AppendChild(chartarea); //将该节点另到xml文档的末尾,在这里是第一个节点
chartarea.AppendChild(series);//将第二个节点插入到第一个节点之下
XmlElement dataPoints = doc.CreateElement("DataPoints"); //第三层节点
series.AppendChild(dataPoints);
XmlElement dataPoint = doc.CreateElement("DataPoint");//第四层节点
dataPoint.SetAttribute("X", "0");
XmlElement y = doc.CreateElement("Y");
y.InnerText = "10";
dataPoints.AppendChild(dataPoint);
dataPoint.AppendChild(y); //加载

这段程序所得到xml文档的内容如下:

<ChartArea>
<Series name="series1" id="001">
<DataPoints>
<DataPoint X="0">
<Y>10</Y>
</DataPoint>
</DataPoints>
</Series>
</ChartArea>

怎么样,简单吧!看到这里,大家应该要问了,这个结果是怎么输出的呢,答案就在下面:

XmlTextWriter writer = new XmlTextWriter(Console.Out); //输出到控制台
writer.Formatting = Formatting.Indented;//输出格式,跟据子元素进行缩进
doc.WriteContentTo(writer); //将文档输出到流
writer.Flush(); //刷新基础流
doc.Save("c://y.xml") //保存成物理文件

2.从指定节点插入
XmlNode xmlTmp = doc.SelectSingleNode("ChartMap/ChartAreas/ChartArea/Serieses");//取单一节点
for (int i = 0; i < 5; i++)//在这面取到的节点下面添加五个DataPoint元素
{
XmlElement point1 = doc.CreateElement("DataPoint");
XmlAttribute xvalue = doc.CreateAttribute("xValue");
xvalue.InnerText = j.ToString();
point1.SetAttributeNode(xvalue);
XmlElement yValue = doc.CreateElement("YValue");
yValue.InnerText = "20";
point1.AppendChild(yValue);
pointsNode.AppendChild(point1);
}

取多个节点: XmlNodeList nodes = doc.SelectNodes(string xPath);

3.从另外一个xml对象中取到节点以及内容添加到另一个 xml的指定节点下:

using System.Xml;

public class Sample
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml("<bookstore>" +
"<book genre='novel' ISBN='1-861001-57-5'>" +
"<title>Pride And Prejudice</title>" +
"</book>" +
"</bookstore>");用字符串加载xml文档

//读取另外一个xml文件

XmlDocument doc2 = new XmlDocument();
doc2.Load("books.xml");

//取doc中指定结点的内容赋值给一个newBook
XmlNode newBook = doc.ImportNode(doc2.DocumentElement.LastChild, true);
doc.DocumentElement.AppendChild(newBook);  将newBook添加到doc的根节点下去

doc.Save(Console.Out);



}
}
好了,关于xml文件的操作到现在为止,我也只了解这么多,就说到这吧!有些地方还是需要多看看msdn的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: