I've been on it before. NET operation of XML, but not very detailed, now I will explain how C # to operate XML files, just as learning to operate the database to learn the SQL language, before learning to manipulate XML and language, we need to familiarize ourselves with XML "SQL" statement XPath. Since the purpose of this series of posts is not to introduce the XPath syntax in detail, I borrowed a leves post from the garden to briefly introduce XPath syntax:
XPath is the query language of XML and is similar to the role of SQL. Use the following XML as an example to introduce the syntax of XPath.
<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
<cd country="USA">
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<price>10.90</price>
</cd>
<cd country="UK">
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<price>9.90</price>
</cd>
<cd country="USA">
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<price>9.90</price>
</cd>
</catalog>
Locating nodes
XML is a tree structure, similar to the structure of folders in a file system, and XPath is similar to the path naming of a file system. However, XPath is a pattern that selects all nodes in an XML file where the path conforms to a pattern. For example, to select all the price elements in the CD under catalog, you can use:
/catalog/cd/price
If the beginning of the XPath is a slash (/) represents this is an absolute path. If the beginning is a two slash (//), all of the elements in the file that conform to the schema are selected, even if they are at different levels in the tree. The following syntax selects all elements in the file called CDs (which are selected at any level in the tree):
//cd
Select an unknown element
Use the asterisk (wildcards,*) to select an unknown element. The following syntax selects all the child elements of/CATALOG/CD:
/catalog/cd/*
The following syntax selects elements in all catalog that contain the price as a child element.
/catalog/*/price
The following syntax selects all elements of a two-layer parent node, called Price.
/*/*/price
The following syntax selects all the elements in the file.
//*
It is important to note that in order to access elements that are not hierarchical, the XPath syntax must start with a two slash (//), the asterisk (*) is used to access the unknown element, and the asterisk can only represent elements of unknown names and cannot represent elements of unknown levels.