.net 下 XML数据解析的总结(3)

XPath语法在XML数据解析的应用

XML文档示例:

	<? XML version = "1.0" encoding = "utf-8" ?>
	    <bookstore>
	        <book>
	            <title>c语言</title>
	            <author name="xiao">
	                <age>25</age>
	            </author>
	        </book>
	        <book>
	            <title>数据库</title>
	            <price>100</price>
	        </book>
	        <book>
	            <title>数据结构</title>
	            <age>100</age>
	            <author name="wang">
	                <age>25</age>
	                <sex>female</sex>
	            </author>
	            <price>66.5</price>
	        </book>
	    </bookstore>

XPath语法在XML数据解析的应用:

	private void button_click(object render, EventArgs e){
	    XmlDocument doc = new XmlDocument();
	    doc.Load(@"..\..\CD.xml");
	    XmlElement root = null;
	    root = doc.DocumentElement;
	    XmlNodeList listNodes = null;
	    listNodes = root.SelectNodes("/bookstore/book/price");  // 选取符合XPath层级的price节点
	    foreach(XmlNode node in listNodes){
	        richTextBox.Text += node.InnerText + "/n";
	    }
	}
	// XPath语法小结:
	"//title": 开头两个斜线表示,即使处于树中不同层级也会被筛选出来,选出所有title元素
	"/bookstore/book/author/*": 使用星号(*),可以选择未知元素,选择bookstore根节点下的author节点下的所有节点
	"/bookstore/book/*/age": 选出所有bookstore根节点下的book节点的隔一个层级的age节点
	"/*/*/age": 选取两个层级下的age元素
	"/bookstore/book[1]/title":  使用中括号可以选择分支,选择bookstore根节点下第一个book节点的title节点(结果:C语言)
	"bookstore/book[last()]/title": 结果:数据结构
	"bookstore/book/author[sex]":  选择所有带有sex子节点并满足一定层级结构的author节点
	"bookstore/book[price=66.5]/title": 选择price子节点等于66.5的book父节点的title子节点
	"/bookstore/book/title | /bookstore/book/price": 选择一个以上路径,选择符合一定层级结构的title元素与price元素
	"//@name": 选择属性时以@开头,这表示选择所有name属性
	"//author[@name]/age": 表示选择具有name属性的author节点的age节点
	"//*[@*]": 选择所有带有属性的节点
	"//author[@name='wang']/sex": 选取所有name属性值为wang的author节点的sex子节点


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值