首页 > 代码库 > XML查询
XML查询
XPath是XML的查询语言,其内容相当复杂。可以查阅www.w3.org/TR/xpath。
下面以一个实例简单了解一线XPath的查询方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
public partial class Form1 : Form { private XmlDocument document; public Form1() { InitializeComponent(); document = new XmlDocument(); FileStream fs = new FileStream( "xmlFileSelect.xml" , FileMode.Open, FileAccess.Read); document.Load(fs); this .Update(document.DocumentElement.SelectNodes( "." )); } private void Update(XmlNodeList nodes) { if (nodes == null || nodes.Count == 0) { textBox1.Text = "no result" ; return ; } string text = string .Empty; foreach (XmlNode node in nodes) { textBox1.Text= Format(node, text, "" ); } } private string Format(XmlNode node, string text, string indent) { if (node is XmlText) { text += node.Value; return text; } if ( string .IsNullOrEmpty(indent)) { indent = "" ; } else { text += "\r\n" + indent; } if (node is XmlComment) { text += node.OuterXml; return text; } text += "<" + node.Name; if (node.Attributes.Count > 0) { AddAttribute(node, ref text); } if (node.HasChildNodes) { text += ">" ; foreach (XmlNode child in node.ChildNodes) { Format(child, text, indent + " " ); } if (node.ChildNodes.Count == 1 && (node.FirstChild is XmlText || node.FirstChild is XmlComment)) { text += "\r\n" + indent + "</" + node.Name + ">" ; } } else { text += "/>" ; } return text; } private void AddAttribute(XmlNode node, ref string text) { foreach (XmlAttribute attribute in node.Attributes) { text += " " + attribute.Name + "=‘" + attribute.Value + "‘" ; } } private void button1_Click( object sender, EventArgs e) { try { XmlNodeList nodes = document.DocumentElement.SelectNodes(textBox1.Text); Update(nodes); } catch (Exception error) { textBox1.Text = error.ToString(); } } } |
主要实现根据输入内容检索xmlnode
XML查询
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。