问题一
<?xml version="1.0" encoding="utf-8" ?>
<root>
<!--comment1-->
<element1>element1</element1>
<element2>elemen2</element2>
<!--comment2-->
<!--comment3-->
<!--comment4-->
<element3>element3</element3>
</root>这个XML文件有些comment,我要选择element节点 比如<element1>到<element3>
用XPath 怎么查询呢?问题二
<?xml version="1.0" encoding="utf-8" ?>
<root>
<Class1>
<Class11>
<Class111>111</Class111>
<Class112>112</Class112>
</Class11>
<Class12>12</Class12>
<Class13>13</Class13>
</Class1>
<Class2>
<Class21>21</Class21>
<Class22>22</Class22>
<Class23>23</Class23>
</Class2>
<Class3></Class3>
</root>我要选择所有含有文本的节点,该怎么查询呢?
<?xml version="1.0" encoding="utf-8" ?>
<root>
<!--comment1-->
<element1>element1</element1>
<element2>elemen2</element2>
<!--comment2-->
<!--comment3-->
<!--comment4-->
<element3>element3</element3>
</root>这个XML文件有些comment,我要选择element节点 比如<element1>到<element3>
用XPath 怎么查询呢?问题二
<?xml version="1.0" encoding="utf-8" ?>
<root>
<Class1>
<Class11>
<Class111>111</Class111>
<Class112>112</Class112>
</Class11>
<Class12>12</Class12>
<Class13>13</Class13>
</Class1>
<Class2>
<Class21>21</Class21>
<Class22>22</Class22>
<Class23>23</Class23>
</Class2>
<Class3></Class3>
</root>我要选择所有含有文本的节点,该怎么查询呢?
解决方案 »
- Excel2007 表数据如何导入数据库Server 2000 希望有代码详细解释
- smart client 的前景如何? 在saas等云计算概念里会占有什么 地位?
- C# 如何更换窗口。
- 急求smartdevice 保存数据方法
- 如何显示dataGrid某行某列的值
- 如何检查是否有内存未释放
- 一个简单的公文流转系统需要哪些知识?
- EntityFramework批量插入数据遇到一个百思不得解的问题
- 由GraphicsPath组合的一组路径,如何判断它是不是一个圆?
- WCF实现webservice 返回值带有xml描述
- listView控件
- 有winform高手吗? c# windows应用程序中datagridview 控件如何删除一个行
/root/*[not(comment())]第二个
//text()/..
没有完全明白你的需求,如果Xml是这种形式:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<comment1>comment1</comment1>
<element>element1</element>
<element>elemen2</element>
<comment2>comment2</comment2>
<comment3>comment3</comment3>
<element>element3</element>
</root>
直接用:/root/element,示例如下:
XPathDocument document = new XPathDocument("../../x.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator nodes = navigator.Select("/root/element");
while (nodes.MoveNext())
{
Console.WriteLine(nodes.Current.Name);
}
输出:
element
element
element如果这样:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<comment1>comment1</comment1>
<element1>element1</element1>
<element2>elemen2</element2>
<comment2>comment2</comment2>
<comment3>comment3</comment3>
<element3>element3</element3>
</root>
可以这样用:/root/*[starts-with(name(),'element')]
示例如下:
XPathDocument document = new XPathDocument("../../x.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator nodes = navigator.Select("/root/*[starts-with(name(),'element')]"); while (nodes.MoveNext())
{
Console.WriteLine(nodes.Current.Name);
}
输出:
element1
element2
element3
可以用//*[text()],示例如下:
XPathDocument document = new XPathDocument("../../x.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator nodes = navigator.Select("//*[text()]");
while (nodes.MoveNext())
{
Console.WriteLine(nodes.Current.Name);
}输出:
Class111
Class112
Class12
Class13
Class21
Class22
Class23