概述
<span style="font-family:Verdana">XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized <br>Markup Language,标准通用标记语言)。它没有标签集(tag set),也没有语法规则(grammatical rule),但是它有句法规则(syntax rule)。<br>任何XML文档对任何类型的应用以及正确的解析都必须是良构的(well-formed),即每一个打开的标签都必须有匹配的结束标签,不得<br>含有次序颠倒的标签,并且在语句构成上应符合技术规范的要求。XML文档可以是有效的(valid),但并非一定要求有效。所谓有效文档是指其符合其文档<br>类型定义(DTD)的文档。如果一个文档符合一个模式(schema)的规定,那么这个文档是"模式有效的(schema valid)"。</span>
XML 是一种标记语言,很类似 HTML ,XML 的设计宗旨是传输数据,而非显示数据 ,XML 标签没有被预定义。您需要自行定义标签。 XML 被设计为具有自我描述性。 XML 是 W3C 的推荐标准
很多新的 Internet 语言是通过 XML 创建的:
其中的例子包括:
XHTML - 最新的 HTML 版本 ,WSDL - 用于描述可用的 web service ,WAP 和 WML - 用于手持设备的标记语言 ,RSS - 用于 RSS feed 的语言 ,
RDF 和 OWL - 用于描述资源和本体 ,SMIL - 用于描述针针对 web 的多媒体
下面来看一个常用案例:
<bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
可以用如下图来解释:
在 XML 中,一些字符拥有特殊的意义。
如果你把字符 "f9dbe29adccece3bbf1eb6f66b0876fa15.00]
选取所有bookstore元素的book元素,且其中的price元素的值须大于15.00
/bookstore/book[price>15.00]/title
选取所有bookstore元素中的book元素的title元素,且其中的price元素的值须大于15.00
//title[@*]
选取所有带有属性的 title 元素
如果需要选择一个以上的路径,可以在XPath表达式中使用“|”运算符:
路径表达式 |
描述 |
//book/title | //book/price |
选取所有book元素的title和price元素 |
//title | //price |
选取文档中所有的title和price元素 |
/bookstore/book/title | //price |
选取所有属于bookstore元素的book元素的title元素,以及文档中所有的price元素 |
XPath表达式的常用运算符:
运算符 |
描述 |
实例 |
| |
计算两个节点集 |
//book | //cd,返回所有带有 book 和 cd 元素的节点集 |
+ |
加法 |
6 + 4, |
- |
减法 |
6 - 4 |
* |
乘法 |
6 * 4 |
p |
除法 |
8 p 4 |
= |
等于 |
price=15 |
!= |
不等于 |
price!=15 |
7e6f3a67ad5a301929ce70c710928c66 |
大于 |
price>15 |
>= |
大于或等于 |
price>=15 |
or |
或 |
price=15 or price=35 |
and |
与 |
price>15 or price<35 |
mod |
计算除法的余数 |
5 mod 2 |
示例
private void button1_Click(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load(@"..\..\CD.xml"); XmlElement root = null; root = doc.DocumentElement; XmlNodeList listNodes = null; listNodes = root.SelectNodes("/bookstore/book/price"); foreach (XmlNode node in listNodes ) { richTextBox1.Text += node.InnerText + "\n"; } }
结果:
29.00
46.00
以上是XML的简介与开发详解(图文)的详细内容。更多信息请关注PHP中文网其他相关文章!