private static void xmlPath()
{
/* Sample Documents
*
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book lang="chs">
<title lang="chs">Harry Potter</title>
<price>29.99</price>
</book>
<book lang="chs">
<title>Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
<book>
<title Display="eng">Learning XML</title>
<price>39.95</price>
</book>
<book>
<title lang="eng">Learning</title>
<price>45.95</price>
</book>
<book>
<title lang="eng">Learning</title>
</book>
<book>
<title lang="eng">Learning</title>
</book>
</bookstore>
*
*/
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\Documents and Settings\Administrator\Desktop\bookstore.xml");
//grammar
// / select from root
// // select all regardless of their position
// . select from current node
// .. select the parent node of current node
// @ select attribute
/*select from root
you can also selelct parent node first,
then select from current node.
*/
//all bookNodes
XmlNodeList bookstoreNodes = xmlDoc.SelectNodes("bookstore/book");
//select price less than 30 bookNodes
XmlNodeList bookNodesPrice = xmlDoc.SelectNodes("bookstore/book[price<30]");
//all langNodes
XmlNodeList langNodes = xmlDoc.SelectNodes("//@lang");
//select titleNodes with the lang attribute
XmlNodeList titleNodes = xmlDoc.SelectNodes("bookstore/book/title[@lang]");
//bookNodes that it's childnode named title is Learning
XmlNodeList bookNodesTitles = xmlDoc.SelectNodes("bookstore/book[title='Learning']");
//langNodes and value = eng
XmlNodeList langEngNodes = xmlDoc.SelectNodes("bookstore/book/title[@lang='eng']");
//select book node does not have price node
XmlNodeList NoPriceNodes = xmlDoc.SelectNodes("//book[not(price)]");
//select title element with attribute
XmlNodeList titleElements = xmlDoc.SelectNodes("//title[@*]");
/*use operator | ,you can select serval nodes*/
//select all title nodes and price nodes
XmlNodeList titlePriceNodes = xmlDoc.SelectNodes("//title|//price");
foreach (XmlNode titlePriceNode in titlePriceNodes)
{
//select all attribute of current node
XmlNodeList attributes = titlePriceNode.SelectNodes("attribute::*");
//selelct all text of current node
XmlNodeList texts = titlePriceNode.SelectNodes("text()");
}
//select the text of price node
XmlNodeList priceNodetexts = xmlDoc.SelectNodes("/bookstore/book/price/text()");
}
常用的xpath
最新推荐文章于 2023-06-25 14:27:29 发布