(C#) 操作XML之遍历
2013-02-14 13:57
274 查看
XML内容是个树结构,用C#读取XML里的结点(Node)的时候,首先要理解在.NET的世界里,什么是结点(Node)?
有如下XML:
其中: <?xml version="1.0" encoding="utf-8" ?> 是结点,<bookstore>是结点,category="COOKING"是结点,Everyday Italian也是结点。
查看MSDN的 XmlNodeType 枚举便会知道详细的情况: http://msdn.microsoft.com/zh-cn/library/system.xml.xmlnodetype.aspx
所以,如果想获取所有的书详细信息(title,author,year,price),那么就需要遍历所有的Text结点。
输出如下:
Everyday Italian
Gida De Laurentiis
2005
30.00
Harry Potter
J K.Rowling
2005
29.99
Learning XML
Erik T.Ray
2003
39.95
用LINQ to XML 也可以简单的对XML进行操作。
有如下XML:
<?xml version="1.0" encoding="utf-8" ?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K.Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T.Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
其中: <?xml version="1.0" encoding="utf-8" ?> 是结点,<bookstore>是结点,category="COOKING"是结点,Everyday Italian也是结点。
查看MSDN的 XmlNodeType 枚举便会知道详细的情况: http://msdn.microsoft.com/zh-cn/library/system.xml.xmlnodetype.aspx
Node | XmlNodeType |
<?xml version="1.0" encoding="utf-8" ?> | XmlDeclaration |
<bookstore> | Element |
<book category="COOKING"> | Element |
category="COOKING" | Attribute |
<title lang="en">Everyday Italian</title> | Element |
Everyday Italian | Text |
private void TraverseTextNodeInnerText(XmlNode node) { if (node.HasChildNodes) { XmlNodeList nodeList = node.ChildNodes; foreach (XmlNode nd in nodeList) { if (nd.NodeType == XmlNodeType.Text) { _TextNodeInnerTexts.Add(nd.InnerText); } TraverseTextNodeInnerText(nd); } } } public string[] GetAllTextNodeInnerText(string node) { XmlDocument doc = XMLLoad(); XmlNode nd = doc.SelectSingleNode(node); TraverseTextNodeInnerText(nd); return this._TextNodeInnerTexts.ToArray(); }
输出如下:
Everyday Italian
Gida De Laurentiis
2005
30.00
Harry Potter
J K.Rowling
2005
29.99
Learning XML
Erik T.Ray
2003
39.95
用LINQ to XML 也可以简单的对XML进行操作。
相关文章推荐
- C#实体映射XML操作
- C# 用Linq的方式实现对Xml文件的基本操作(创建xml文件、增删改查xml文件节点信息)
- C#中xml操作
- 使用C#对XML进行增删改查操作 收藏
- 转 c#对xml的支持基本操作
- C#操作XML代码整理
- 点滴积累【C#】---操作xml,将xml数据显示到treeview
- c#操作xml增删改查
- C#操作xml
- 在C#.net中如何操作XML
- 【转】在C#中操作XML(增删改)
- C#操作XML
- 用C#对XML的操作
- C#操作XML
- C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)
- c#操作xml的代码(插入节点、修改节点、删除节点等)
- C#操作XML(带命名空间)
- C#操作xml 【不错的文章,入门推荐】
- 在C#中操作XML
- C#操作XML小结