(C#) 操作XML之查找
2013-02-14 18:23
232 查看
有如下XML,如何根据书名(title)Harry Potter显示这个书名的详细内容(detail)呢?
<detail>结点是<title>兄弟结点,C#提供了NextSibling属性来获取相关数据。
另外利用XPath的相关语法可以快速的定位到需求的结点。
(XPath语法参考:http://www.w3school.com.cn/xpath/xpath_syntax.asp,http://www.cnblogs.com/yukaizhao/archive/2011/07/25/xpath.html)
所以,解题思路为:根据书名Harry Potter 定位到<title lang="en">Harry Potter</title>结点,然后遍历它的下一个兄弟结点的所有的Text结点。
其中XPath的定位语句为:bookstore/book/title[text()='Harry Potter']
修改XPath的定位语句,也可以直接定位到符合条件的detail结点上。如: bookstore/book/title[text()='Harry Potter']/../detail
输出为:
<?xml version="1.0" encoding="utf-8" ?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <detail> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </detail> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <detail> <author>J K.Rowling</author> <year>2005</year> <price>29.99</price> </detail> </book> <book category="WEB"> <title lang="en">Learning XML</title> <detail> <author>Erik T.Ray</author> <year>2003</year> <price>39.95</price> </detail> </book> </bookstore>
<detail>结点是<title>兄弟结点,C#提供了NextSibling属性来获取相关数据。
另外利用XPath的相关语法可以快速的定位到需求的结点。
(XPath语法参考:http://www.w3school.com.cn/xpath/xpath_syntax.asp,http://www.cnblogs.com/yukaizhao/archive/2011/07/25/xpath.html)
所以,解题思路为:根据书名Harry Potter 定位到<title lang="en">Harry Potter</title>结点,然后遍历它的下一个兄弟结点的所有的Text结点。
其中XPath的定位语句为:bookstore/book/title[text()='Harry Potter']
public string[] GetNextSiblingAllTextNodeInnerText(string node, string textNodeInnerText) { XmlDocument doc = XMLLoad(); StringBuilder sbNode = new StringBuilder(); sbNode.Append(node).Append("[text()='").Append(textNodeInnerText).Append("']"); XmlNode nd = doc.SelectSingleNode(sbNode.ToString()); this._TextNodeInnerTexts.Clear(); TraverseTextNodeInnerText(nd.NextSibling); return this._TextNodeInnerTexts.ToArray(); }
修改XPath的定位语句,也可以直接定位到符合条件的detail结点上。如: bookstore/book/title[text()='Harry Potter']/../detail
输出为:
J K.Rowling
2005
29.99
相关文章推荐
- C#中对 XML节点进行添加,删除,查找和删除操作
- C#中对 XML节点进行添加,删除,查找和删除操作
- C#中对 XML节点进行添加,删除,查找和删除操作
- C#中对 XML节点进行添加,删除,查找和删除操作
- C#中对 XML节点进行添加,删除,查找和删除操作
- c#环境XML文件创建、修改、删除、查找相关操作
- C#操作XML实例解析(创建、增、删、改)
- C#操作xml工具类
- C#操作xml之xpath语法 转载
- C#操作XML小结
- 用TinyXml做XML解析示例 TinyXml查找唯一节点及修改节点操作
- C#编程之XML文件对象增删改操作
- ExtJs4.0+ASP.net(c#) 操作XML文件
- C#操作xml文件
- C#操作XML
- C#操作XML简明教程
- 在C#.net中如何操作XML
- C#中XML操作简析1
- c#对xml的基本操作
- 掌握如何在C#.net中操作XML