这句话怎么解释呢?("descendant::book[author/last-name='Austen']")
完整点的代码如下:
XmlDocument doc = new XmlDocument();
doc.Load( "XMLFile1.xml ");
XmlNode root = doc.DocumentElement;
XmlNodeList nodeList = root.SelectNodes( "descendant::book[author/last-name= 'Austen '] ");
我不明白SelectNodes的参数是怎么来解释的,比如:
descendant是什么意思?
descendant::又是什么意思?
::前面都可能会出现什么样的单词?
book后面的[是什么意思?
-----------------------------------
XMLFile1.xml内容如下:
<?xml version= "1.0 "?>
<!-- A fragment of a book store inventory database -->
<bookstore xmlns:bk= "urn:samples ">
<book genre= "novel " publicationdate= "1997 " bk:ISBN= "1-861001-57-8 ">
<title> Pride And Prejudice </title>
<author>
<first-name> Jane </first-name>
<last-name> Austen </last-name>
</author>
<price> 24.95 </price>
</book>
<book genre= "novel " publicationdate= "1992 " bk:ISBN= "1-861002-30-1 ">
<title> The Handmaid 's Tale </title>
<author>
<first-name> Margaret </first-name>
<last-name> Atwood </last-name>
</author>
<price> 29.95 </price>
</book>
<book genre= "novel " publicationdate= "1991 " bk:ISBN= "1-861001-57-6 ">
<title> Emma </title>
<author>
<first-name> Jane </first-name>
<last-name> Austen </last-name>
</author>
<price> 19.95 </price>
</book>
<book genre= "novel " publicationdate= "1982 " bk:ISBN= "1-861001-45-3 ">
<title> Sense and Sensibility </title>
<author>
<first-name> Jane </first-name>
<last-name> Austen </last-name>
</author>
<price> 19.95 </price>
</book>
</bookstore>
------解决方案--------------------//CCC/descendant::DDD
选择所有以CCC为祖先元素的DDD元素
------解决方案--------------------/descendant::*
选择文档根元素的所有后代.即所有的元素被选择
------解决方案--------------------楼主对XPath不熟?看看教程
http://www.zvon.org/xxl/XPathTutorial/Output_chi/example1.html
------解决方案--------------------XPath...
descendant 是 XPath 正向轴...descendant 返回上下文节点的所有后代...
相对路径表达式 descendant::book[author/last-name= 'Austen '] 指定了一个轴 (descendant) 和一个节点测试(book)和谓词([author/last-name= 'Austen '])...结果是所有子节点author中子节点last-name的值为 'Austen '的book节点...
------解决方案--------------------相当于bookstore/book[author/last-name= 'Austen ']
[]的意思为查找book里面满足author的last-name的节点值为Austen
如果是[@]就变成查节点属性了。