1. XML 文檔操作
1.1 加載一個XML文檔
Dim objDoc As New XmlDocument()
'-- Load xml document Sample.xml
objDoc.Load("Sample.xml")
1.2 加載一個XML數據
Dim objDoc As New XmlDocument()
Dim strXML As String
strXML = "<Employees><Employee id=”12345”><Employee_ID>12345</Employee_ID><Name>Zhang Bin</Name></Employee></Employees>"
'-- Load xml data
objDoc.Load(strXML)
1.3 保存文檔
'—Save xml document
objDoc.Save("Sample.xml")
2 XML 數據的查詢
最常見的XML數據類型有:Element, Attribute,Comment, Text.
Element, 指形如<Name>Tom<Name>的節點。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.
Attribute, 指在<Employee id=”12345”>中的粗體部分。
Comment,指形如:<!-- my comment --> 的節點。
Text,指在<Name>Tom<Name>的粗體部分。
在XML中,可以用XmlNode對象來參照各種XML數據類型。
2.1 查詢已知絕對路徑的節點(集)
objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee”)
或者
objNodeList = objNode.SelectNodes(“/Company/Department/Employees/Employee”)
以上兩種方法可返回一個NodeList對象,如果要返回單個節點可使用SelectSingleNode方法,該方法如果查詢到一個或多個節點,返回第一個節點;如果沒有查詢的任何節點返回 Nothing。例如:
objNode = objNode.SelectSingleNode(“/Company/Department/Employees/Employee”)
If Not (objNode is Nothing) then
‘- Do process
End If
2.2 查詢已知相對路徑的節點(集)
可使用類似於文件路徑的相對路徑的方式來查詢XML的數據
objNode = objDoc.SelectSingleNode(“Company/Department”)
objNodeList = objNode.SelectNodes(“../Department)
objNode = objNode.SelectNode(“Employees/Employee”)
2.3 查詢已知元素名的節點(集)
在使用不規則的層次文檔時,由於不知道中間層次的元素名,可使用//符號來越過中間的節點,查詢其子,孫或多層次下的其他所有元素。例如:
objNodeList = objDoc.SelectNodes(“Company//Employee”)
2.4 查詢屬性(attribute)節點
以上的各種方法都返回元素(element)節點(集),返回屬性(attribute),只需要采用相應的方法,在屬性名前加一個@符號即可,例如:
objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee/@id”)
objNodeList = objDoc.SelectNodes(“Company//@id”)
2.5 查詢Text節點
使用text()來獲取Text節點。
objNode = objDoc.SelectSingleNode(“Company/Department/Deparmt_Name/text()”)
2.6 查詢特定條件的節點
使用[]符號來查詢特定條件的節點。例如:
a. 返回id號為 10102的Employee節點
objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee[@id=’10102’]”)
b. 返回Name為Zhang Qi的Name 節點
objNo