xml解析步骤:
第一:创建xmlDocument 对象,并实例化
xmlDocument xdc xdoc= new xmlDocument();
第二: xml文档路径,当前路径为工程项目下的 .\bin\debug
String StrFileName="test.xml";
第三: 读取xml(利用xmlReader读取)
xdoc.load(strFileName);
第四:输出xml文档
xdc.InnerXml
xml文档的结构:
Element——元素
Text——内容
EndElement——结束标记
Comment——注释
xmlDeclaration——声明
Document——根节点
DocumentType——文档类型声明
实例:
static void Main(string[] args)
{
XmlDocument xdoc = new XmlDocument();
string filename = "解析xml测试.xml";
XmlTextReader xreader = new XmlTextReader(filename);
xreader.WhitespaceHandling = WhitespaceHandling.None;//利用WhitespaceHandling.None 忽略解析出来空格
while (xreader.Read())
{
for (int i = 0; i < xreader.Depth; i++)
{
switch (xreader.NodeType)//判断节点类型
{
case XmlNodeType.Element://元素
Console.WriteLine("{0}", xreader.Value);
break;
case XmlNodeType.Text://内容
Console.WriteLine("{0}", xreader.Value);
break;
case XmlNodeType.EndElement://元素结束标记
Console.WriteLine("</{0}>", xreader.Name);
break;
case XmlNodeType.Comment://注释
Console.WriteLine("<!--{0}--!>", xreader.Value);
break;
case XmlNodeType.XmlDeclaration://xml声明
Console.WriteLine("<?xml version='1.0'>");
break;
case XmlNodeType.Document://根节点
break;
case XmlNodeType.DocumentType://文档类型声明
Console.WriteLine("<!DOCTYPE{0}[{1}]>", xreader.Name, xreader.Value);
break;
}
}
}
Console.ReadKey();
}
注:以上方法只是简单的查询或者遍历xml文档,但是对需要精确查找数据就不容易操作。如果需要对文档进行全面的操作(增加、删除)需要根据xml文档(子)节点进行。
方法二:
static void Main(string[] args)
{
XmlDocument xdc = new XmlDocument();
xdc.Load("解析xml测试.xml");
XmlNodeList nodeList = xdc.SelectSingleNode("kml").ChildNodes;
foreach (XmlNode item in nodeList)
{
XmlElement xe = (XmlElement)item;
XmlNodeList xnf1 = xe.ChildNodes;
foreach (XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText+"\t");//显示子节点点文本
}
}
Console.ReadKey();
}
================================================================================================================
未完待续(因为个人学识有限,刚写一半就不知道怎么写了,希望对这方面比较熟悉的能给点参考,谢谢!)