view plaincopy to clipboardprint?
1. 最常见的XML数据类型有:Element, Attribute,Comment, Text.
2.
3. Element, 指形如<Name>Tom<Name>的节点。它可以包括:Element, Text, Comment, ProcessingInstruction, CDATA, and EntityReference.
4.
5. Attribute, 指在<Employee >中的粗体部分。
6.
7. Comment,指形如:<!-- my comment --> 的节点。
8.
9. Text,指在<Name>Tom<Name>的粗体部分。
10.
11. 在XML中,可以用XmlNode对象来参照各种XML数据类型。
12.
13. 2.1 查询已知绝对路径的节点(集)
14.
15. objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee”)
16.
17. 或者
18.
19. objNodeobjNodeList = objNode.SelectNodes(“/Company/Department/Employees/Employee”)
20.
21. 以上两种方法可返回一个NodeList对象,如果要返回单个节点可使用SelectSingleNode方法,该方法如果查询到一个或多个节点,返回第一个节点;如果没有查询的任何节点返回 Nothing。例如:
22.
23. objNodeobjNode = objNode.SelectSingleNode(“/Company/Department/Employees/Employee”)
24.
25. If Not (objNode is Nothing) then
26.
27. ‘- Do process
28.
29. End If
30.
31. 2.2 查询已知相对路径的节点(集)
32.
33. 可使用类似于文件路径的相对路径的方式来查询XML的数据
34.
35. objNode = objDoc.SelectSingleNode(“Company/Department”)
36.
37. objNodeobjNodeList = objNode.SelectNodes(“../Department)
38.
39. objNodeobjNode = objNode.SelectNode(“Employees/Employee”)
40.
41. 2.3 查询已知元素名的节点(集)
42.
43. 在使用不规则的层次文档时,由于不知道中间层次的元素名,可使用//符号来越过中间的节点,查询其子,孙或多层次下的其他所有元素。例如:
44.
45. objNodeList = objDoc.SelectNodes(“Company//Employee”)
46.
47. 2.4 查询属性(attribute)节点
48.
49. 以上的各种方法都返回元素(element)节点(集),返回属性(attribute),只需要采用相应的方法,在属性名前加一个@符号即可,例如:
50.
51. objNodeList = objDoc.SelectNodes(“Company/Department/Employees/Employee/@id”)
52.
53. objNodeList = objDoc.SelectNodes(“Company//@id”)
54.
55. 2.5 查询Text节点
56.
57. 使用text()来获取Text节点。
58.
59. objNode = objDoc.SelectSingleNode(“Company/Department/Deparmt_Name/text()”)
60.
61. 2.6 查询特定条件的节点
62.
63. 使用[]符号来查询特定条件的节点。例如:
64.
65. a. 返回id号为 10102的Employee节点
66.
67. objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee[@id=’10102’]”)
68.
69. b. 返回Name为Zhang Qi的Name 节点
70.
71. objNode = objDoc.SelectSingleNode(“Company/Department/Employees/Employee/Name[text()=’Zhang Qi’]”)
72.
73. c. 返回部门含有职员22345的部门名称节点
74.
75. objNode = objDoc.SelectSingleNode("Company/Department[Employees/Employee/@id='22345']/Department_Name")
76.
77. 2.7 查询多重模式的节点
78.
79. 使用 | 符号可以获得多重模式的节点。例如:
80.
81. objNodeList = objDoc.SelectNodes(“Company/Department/Department_Name | Company/Department/Manager”)
82.
83. 2.8 查询任意子节点
84.
85. 使用*符号可以返回当前节点的所有子节点。
86.
87. objNodeList = objDoc.SelectNodes(“Company/*/Manager)
88.
89. 或者
90.
91. objNodeobjNodeList = objNode.ChildNodes
92.
93.
94.
95. 3 XML数据的编辑
96.
97. 3.1 增加一个元素的属性(attribute)节点
98.
99. Dim objNodeAttr As XmlNode
100.
101. objNodeAttr = objDoc.CreateAttribute("id", Nothing)
102.
103. objNodeAttr.InnerXml = "101"
104.
105. objNode.Attributes.Append(objNodeAttr)
106.
107. 3.2 删除一个元素的属性
108.
109. objNode.Attributes.Remove(objNodeAttr)
110.
111. 3.3 增加一个子元素(Element)
112.
113. Dim objNodeChild As XmlNode
114.
115. objNodeChild = objDoc.CreateElement(Nothing, "ID", Nothing)
116.
117. objNodeChild.InnerXml = "101"
118.
119. objNode.AppendChild(objNodeChild)
120.
121. 3.4 删除一个子元素
122.
123. objNode.RemoveChild(objNodeChild)
124.
125. 3.5 替换一个子元素
126.
127. objNOde.ReplaceChild(newChild,oldChild)
128.
129.
130.
131. 4 参考数据
132.
133. <?xml version="1.0" encoding="UTF-8"?>
134.
135. <Company>
136.
137. <Department >
138.
139. <Department_Name>Cai WuBu</Department_Name>
140.
141. <Manager>Zhang Bin</Manager>
142.
143. <Employees>
144.
145. <Employee >
146.
147. <Employee_ID>12345</Employee_ID>
148.
149. <Name>Zhang Bin</Name>
150.
151. <Gender>male</Gender>
152.
153. </Employee>
154.
155. <Employee >
156.
157. <Employee_ID>10101</Employee_ID>
158.
159. <Name>Zhang QI</Name>
160.
161. <Gender>female</Gender>
162.
163. </Employee>
164.
165. <Employee >
166.
167. <Employee_ID>10102</Employee_ID>
168.
169. <Name>Zhang Xia</Name>
170.
171. <Gender>male</Gender>
172.
173. </Employee>
174.
175. <Employee >
176.
177. <Employee_ID>10201</Employee_ID>
178.
179. <Name>ZhangChuang</Name>
180.
181. <Gender>male</Gender>
182.
183. </Employee>
184.
185. <Employee >
186.
187. <Employee_ID>10202</Employee_ID>
188.
189. <Name>Zhang Jun</Name>
190.
191. <Gender>male</Gender>
192.
193. </Employee>
194.
195. </Employees>
196.
197. </Department>
198.
199. <Department >
200.
201. <Department_Name>KaiFa Bu</Department_Name>
202.
203. <Manager>Wang Bin</Manager>
204.
205. <Employees>
206.
207. <Employee >
208.
209. <Employee_ID>22345</Employee_ID>
210.
211. <Name>Wang Bin</Name>
212.
213. <Gender>male</Gender>
214.
215. </Employee>
216.
217. <Employee >
218.
219. <Employee_ID>20101</Employee_ID>
220.
221. <Name>Wang QI</Name>
222.
223. <Gender>female</Gender>
224.
225. </Employee>
226.
227. <Employee >
228.
229. <Employee_ID>20102</Employee_ID>
230.
231. <Name>Wang Xia</Name>
232.
233. <Gender>male</Gender>
234.
235. </Employee>
236.
237. <Employee >
238.
239. <Employee_ID>20201</Employee_ID>
240.
241. <Name>Wang Chuang</Name>
242.
243. <Gender>male</Gender>
244.
245. </Employee>
246.
247. <Employee >
248.
249. <Employee_ID>20201</Employee_ID>
250.
251. <Name>Wang Jun</Name>
252.
253. <Gender>male</Gender>
254.
255. </Employee>
256.
257. </Employees>
258.
259. </Department>
260.
261. </Company>
分享到:
相关推荐
本文将深入探讨JDOM库中XPath的相关方法——`selectNodes()`和`selectSingleNode()`,以及它们的用法。 首先,我们来理解JDOM的基本概念。JDOM是Java Document Object Model的缩写,它提供了一种基于Java的API来...
在IE浏览器中,我们可以直接使用`selectNodes()`和`selectSingleNode()`方法来选取XML文档中的多个节点或单个节点。如在示例代码中所示,`selectNodes("/resume/name")`会返回一个包含所有匹配的`<name>`元素的数组...
### 使用JavaScript与XPath解析XML元素 #### XPATH简介 XPath是一种在XML文档中查找信息的语言。它使用路径表达式来选择节点或集合节点,并且能够处理来自XML文档的数据,为构建XSLT这样的XML应用程序提供了强有力...
**DOM4J中XPath用法详解** XPath,全称为XML Path Language,是一...通过学习和实践,你可以熟练掌握DOM4J中的XPath用法,从而更高效地处理XML数据。提供的示例文件"a.xml"和"books.xml"可用于实际操作,以加深理解。
通过XPath,我们可以精确定位到XML文档中的特定部分,然后使用XMLDOM的方法进行修改或操作。例如,可以先用XPath选取需要的元素,再调用`innerHTML`或`innerText`属性改变其内容,或者用`setAttribute`更改属性值。 ...
在Dom4j中,我们可以使用`org.dom4j.XPath`类来创建XPath对象,并通过`selectNodes()`或`selectSingleNode()`方法来执行路径表达式,获取XML文档中的节点集合或单个节点。以下是一个简单的示例: ```java import ...
- `selectSingleNode`: 使用XPath表达式选择单个节点。 - `transformNode`: 应用XSLT转换到XML文档。 - `validateOnParse`: 设置是否在加载XML时进行验证。 - `resolveExternals`: 设置是否在加载XML时解析外部...
C#中,可以利用`XmlNode.SelectSingleNode()`方法找到指定的XPath路径,或者`XmlNode.SelectNodes()`方法获取所有匹配的节点。 3. **XPath表达式构建**:在获取到用户选择的元素后,小工具需要根据DOM结构自动生成...
2. **执行查询**:调用`selectNodes()`或`selectSingleNode()`方法,传入`Document`或`Element`对象,执行XPath表达式并返回结果集。 ```java List<Node> nodes = xpath.selectNodes(document); for (Node node : ...
`selectSingleNode`是DOM4J中用于选取XML文档中匹配特定XPath表达式的节点的方法。 首先,让我们看看提供的代码片段: ```java List<Element> featureMembers = root.selectNodes("featureMember"); ``` 这段代码...
在C#中使用XPath,通常会结合.NET框架中的System.Xml命名空间,例如使用`XmlDocument`或`XDocument`类来加载XML文档,然后调用`SelectNodes`或`SelectSingleNode`方法,传入XPath表达式来获取所需节点。下面将详细...
使用XmlDocument类的Load方法可以加载XML文件到内存中。例如: ```csharp XmlDocument doc = new XmlDocument(); doc.Load("path_to_xml_file.xml"); ``` 2. **解析XML结构**: 加载XML文件后,可以通过...
- 使用内存有效的方法:处理大型XML文件时,考虑使用流式API,如`XmlReader`和`XmlWriter`,以减少内存占用。 通过以上知识,您可以有效地在.NET中进行XML文件的读写操作,同时理解了基本的XML处理和操作机制。在...
C#中的XmlNode.SelectNodes或XmlNode.SelectSingleNode方法可以使用XPath表达式来查找元素。 ```csharp XmlNode foundNode = doc.SelectSingleNode("//element[@attribute='value']"); ``` ### 使用LINQ to XML: ...
在非IE浏览器中,通常使用`document.evaluate()`方法来执行XPath查询,这在W3C DOM Level 3中被定义。因此,为了确保代码的广泛兼容性,开发者可能需要使用不同的方法来处理不同浏览器环境中的XPath操作。
- `XmlNode.SelectNodes` 和 `XmlNode.SelectSingleNode`:使用XPath表达式选择节点。 - LINQ to XML:使用`Descendants`, `Elements`, `Attribute`等方法进行查询。 4. **XML序列化和反序列化** - `...
在MSXML库中,我们可以使用`selectNodes`和`selectSingleNode`方法来执行XPath查询: ```vbscript Dim xmlNode Set xmlNode = xmlDOM.SelectSingleNode("//root/element") '选取元素路径 WScript.Echo xmlNode.Text...
DOM4J和XPath是XML处理领域中的两个重要概念,它们在Java编程中有着广泛的应用。DOM4J是一款灵活且功能强大的...在Java项目中,使用DOM4J配合XPath可以极大地提高开发效率和代码的可读性,尤其在处理复杂XML文档时。