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>
分享到:
相关推荐
C# 读取 带 xmlns 命名空间 XML 结点 SelectSingleNode 类 For .NET Framework 1.1x AutoPrefix(System.Xml.XmlNode xNode, System.Xml.XmlNamespaceManager xNameSpaceManager) AutoXPath(System.Xml.XmlNode ...
NULL 博文链接:https://newtime.iteye.com/blog/437338
代码如下:using System.Xml;...//指定一个节点XmlNode root=xml.SelectSingleNode(“/root”);//获取节点下所有直接子节点XmlNodeList childlist=root.ChildNodes;//判断该节点下是否有子节点root.HasChildNodes;/
本篇文章是对dom4j使用selectSingleNode方法报错进行了详细的分析介绍,需要的朋友参考下
vb中读写XML文件实例Dim XMLDoc As DOMDocument Dim root As IXMLDOMNode Dim xlst As IXMLDOMNodeList, xlst1 As IXMLDOMNodeList Dim xn As IXMLDOMNode Dim xnf As IXMLDOMNode Dim xe As IXMLDOMElement Set ...
selectSingleNode()方法接受一个 XPath 模式(也就是查找路径),找到匹配的第一个节点并将它返回,没有则返回 null。//得到第一个 us
dom4j中使用到的方法: 1.创建SaxReader对象 SAXReader reader = new SAXReader(); 2.设置命名空间 reader.getDocumentFactory().setXPathNamespaceURIs(map); 3. SAXReader对象调用...
selectSingleNode:根据XPath选择单个节点。 selectNodes:根据XPath选择多个节点。 全部代码(zyllibjs_xml.js)—— 代码如下: /* zyllibjs_xml XML处理 @author zyl910 注意—— 1. Chrome 由于其安全机制限制, ...
JS中常用的xpath特性 //选择所有dir元素的值等于xx的元素 Dom.documentElement.selectNodes("server/dir[text()='xx']") //选择server元素下的所有dir元素: Dom.documentElement.selectNodes("server/dir...
一、简单介绍 using System.Xml; //初始化一个xml实例 ...XmlNode root=xml.SelectSingleNode(/root); //获取节点下所有直接子节点 XmlNodeList childlist=root.ChildNodes; //判断该节点下是否有子节点 root.H
MSXML解析XML文档(源码).
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") 'JAVASCRIPT中的创建对象 set objXml=CreateObject("Microsoft.XMLDOM") '创建解析器对象 objXml.async="false" objXml.load("test.xml") '装载xml文件 ...
'程序简介: 完成asp语言对XML文档中指定节点文本的增加、删除、修改、查看 '入口参数: 无 '出口参数: 无 '------------------------------------------------ '函数名字:ConnectXml() '入口参数: filename ...
vn.net 2008 的xml读写 'Dim xnl As XmlNode = xmldoc.SelectSingleNode("items/fnode") '读取单个节点 'Dim xe As XmlElement = CType(xnl, XmlElement) 'Trace.WriteLine(xnl("id").InnerText) 'Trace....
xmlNode = _xml.SelectSingleNode(loginUrl);loginInfo.LoginUrl = xmlNode.InnerText;xmlNode = _xml.SelectSingleNode(loginUser);loginInfo.UserId = xmlNode.Attributes[“tagId”].Value;loginInfo.UserValue =...
已知有一个XML文件(bookstore.xml)如下: Corets, Eva 5.95 1、插入节点 往节点中插入一个节点: 代码如下:XmlDocument xmlDoc=new XmlDocument(); xmlDoc.Load(“bookstore.xml”); XmlNode root=xmlDoc....
C#实现对xml文件的读取和写入操作 XmlNode xn = xmlDoc.SelectSingleNode("DBConnection"); XmlNodeList xnl = xn.ChildNodes; foreach (XmlNode xnf in xnl) { XmlElement xe = (XmlElement)xnf; ...
a)item.SelectSingleNode("div[2]/h3/a").InnerText 通过HtmlAgilityPack+XPath读取html中数据 4、WebInfoModels.cs: 包含查询条件、博客显示项目等信息相关Model 5、本项目代码不多,其它代码在源码中均有注释
一、C#对XML格式数据的解析 1、用XMLDocument来解析 XmlDocument xmlDocument = new XmlDocument();...XmlNode node = xmlDocumentSelectSingleNode(content/section/page/gall/folder);//定位到folder节点 no
代码如下:strSourceFile = Server.MapPath(dataxml&”/Advertisement/”&id&”/adv.xml”) Set ...Set xml=objXML.documentElement.selectSingleNode(“Advertisement”) ‘选取节点 Advertisement ADid=xm