所有主要的浏览器都内置了一个XML解析器,用于访问和操作XML
在访问XML文档之前,必须将其加载到XML DOM对象中
所有现代浏览器都有一个内置的XML解析器,可以将文本转换为XML DOM对象
以下示例将一个文本字符串解析为XML DOM对象,并使用JavaScript从中提取信息:
示例
示例解释
定义了一个文本字符串:
text = "" +
"Everyday Italian " +
"Giada De Laurentiis " +
"2005 " +
" ";
创建了一个XML DOM解析器:
parser = new DOMParser();
解析器使用文本字符串创建一个新的XML DOM对象:
xmlDoc = parser.parseFromString(text, "text/xml");
responseText 属性以字符串形式返回响应。
responseXML 属性以XML DOM对象的形式返回响应。
如果要将响应作为XML DOM对象使用,可以使用responseXML属性。
示例
xmlDoc = xmlhttp.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("ARTIST");
for (i = 0; i ";
}
document.getElementById("demo").innerHTML = txt;
文档对象模型(DOM)定义了一种标准,用于访问和操作文档
HTML DOM 定义了一种访问和操作HTML文档的标准方式。它将HTML文档呈现为一棵树结构。
XML DOM 定义了一种访问和操作XML文档的标准方式。它将XML文档呈现为一棵树结构。
了解DOM对于任何与HTML或XML相关的工作都是必要的。
所有HTML元素都可以通过HTML DOM访问。
以下示例更改具有id="demo"的HTML元素的值:
示例
This is a Heading
所有XML元素都可以通过XML DOM访问
Everyday Italian
Giada De Laurentiis
2005
30.00
Harry Potter
J K. Rowling
2005
29.99
以下代码检索XML文档中第一个
元素的文本值:
示例
txt = xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
XML DOM 是获取、更改、添加和删除XML元素的标准方式。
以下示例将一个文本字符串加载到XML DOM对象中,并使用JavaScript从中提取信息:
示例
XPath 是 XSLT 标准中的一个主要元素。它可用于浏览 XML 文档中的元素和属性。
XPath 使用路径表达式选择 XML 文档中的节点或节点集。这些路径表达式类似于在传统计算机文件系统中使用的表达式。
XPath 表达式可用于 JavaScript、Java、XML Schema、PHP、Python、C 和 C++ 等许多其他语言。
XPath 是 XSLT 标准中的一个主要元素。具备 XPath 知识将使您能够充分利用 XSL。
XPath 示例
我们将使用以下 XML 文档:
Everyday Italian
Giada De Laurentiis
2005
30.00
在下表中,我们列出了一些 XPath 表达式及其结果:
XPath 表达式 | 结果 |
---|---|
/bookstore/book[1] |
选择 bookstore 元素的第一个子元素 book 元素 |
/bookstore/book[last()] |
选择 bookstore 元素的最后一个子元素 book 元素 |
/bookstore/book[last()-1] |
选择 bookstore 元素的倒数第二个子元素 book 元素 |
/bookstore/book[position() |
选择 bookstore 元素的前两个子元素 book 元素 |
//title[@lang] |
选择所有具有名为 lang 的属性的 title 元素 |
//title[@lang='en'] |
选择所有具有值为 "en" 的 "lang" 属性的 title 元素 |
/bookstore/book[price>35.00] |
选择 bookstore 元素中所有具有价格大于 35.00 的 book 元素 |
/bookstore/book[price>35.00]/title |
选择 bookstore 元素中所有具有价格大于 35.00 的 book 元素的 title 元素 |
XQuery 是 XML 的查询语言,类似于 SQL 对数据库的作用。XQuery 的设计目标是查询 XML 数据。
XQuery 示例
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
XQuery 1.0 和 XPath 2.0 共享相同的数据模型,并支持相同的函数和运算符。如果您已经学习过 XPath,那么理解 XQuery 将没有问题。
XQuery 使用示例
XQuery 可以用于:
XLink 示例
XLink 示例解释
XLink - 进一步了解
XPointer 示例
在 XLink 与 XPointer 结合使用的示例中,我们链接到另一个文档的特定部分。
首先,查看目标 XML 文档,该文档在每个元素上使用 id 属性:
The Rottweiler's ancestors were probably Roman drover dogs.....
Confident, bold, alert and imposing, the Rottweiler is a popular choice for its ability to protect....
One of the earliest uses of retrieving dogs was to help fishermen retrieve fish from the water....
The flat-coated retriever is a sweet, exuberant, lively dog that loves to play and retrieve....
在 XPointer 中,我们可以链接到文档中具有特定 id 的元素:
Fact about Rottweiler
这里,我们使用 id 值 "Rottweiler"。
这种链接方法可用于指向文档中的特定部分。
使用我们的XML验证器来检查您的XML语法。
具有正确语法的XML文档称为“格式良好”。以下是一份示例:
Tove
Jani
Reminder
Don't forget me this weekend!
XML的语法规则包括:
XML文档中的错误将阻止您的XML应用程序
HTML浏览器允许显示带有错误的HTML文档,但对于XML,不允许存在错误。
为了帮助您检查XML语法,我们创建了一个XML验证器。
尝试检查正确的XML
Tove
Jani
Reminder
Don't forget me this weekend!
尝试检查不正确的XML
Tove
Jani
Reminder
Don't forget me this weekend!
“格式良好”的XML文档与“有效”的XML文档不同。“有效”的XML文档必须是格式良好的,并符合文档类型定义(DTD或XML模式)。
文档类型定义定义了XML文档的规则以及合法的元素和属性。
具有正确语法的XML文档称为“格式良好”。
通过DTD验证的XML文档既是“格式良好”又是“有效”的。
DTD代表文档类型定义。
DTD定义了XML文档的结构以及合法的元素和属性。
一个“有效”的XML文档既是“格式良好”的,也符合DTD的规则:
Tove
Jani
Reminder
Don't forget me this weekend!
上面的DOCTYPE声明包含对DTD文件的引用。DTD文件的内容如下所示,并进行了解释。
DTD的目的是定义XML文档的结构以及合法的元素和属性
]>
上述DTD的解释如下
/code> - 定义文档的根元素为note
- 定义note
元素必须包含元素:“to, from, heading, body”
- 定义to
元素的类型为“#PCDATA”
- 定义from
元素的类型为“#PCDATA”
- 定义heading
元素的类型为“#PCDATA”
- 定义body
元素的类型为“#PCDATA”
提示:#PCDATA
表示可解析的字符数据
DOCTYPE声明还可用于定义文档中使用的特殊字符或字符串
例子
]>
Tove
Jani
Reminder
Don't forget me this weekend!
提示:实体由三部分组成:以“&”开始,然后是实体名称,最后以分号结束
使用DTD,独立的人群可以同意使用标准的DTD进行数据交换
使用DTD,您可以验证从外部世界接收到的数据是否有效
您还可以使用DTD验证自己的数据
XML不需要DTD
当您尝试使用XML进行实验,或者当您处理小型XML文件时,创建DTD可能是浪费时间的
如果您开发应用程序,请等到规范稳定后再添加DTD。否则,由于验证错误,您的软件可能会停止工作
具有正确语法的XML文档称为“格式良好”
通过XML Schema验证的XML文档既是“格式良好”又是“有效”的
XML Schema是DTD的基于XML的替代方案
上述Schema的解释如下
定义名为“note”的元素
“note”元素是一个复杂类型
复杂类型是一系列元素
“to”元素的类型为字符串(文本)
“from”元素的类型为字符串
“heading”元素的类型为字符串
“body”元素的类型为字符串使用XML Schema,您的XML文件可以携带其自身格式的描述。
使用XML Schema,独立的人群可以就数据交换达成标准协议。
使用XML Schema,您可以验证数据。
XML Schema的最大优势之一是支持数据类型
XML Schema的另一个重要优势是它们是用XML编写的
此ASP将服务器上的XML文件转换为XHTML
例子解释
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎点赞、收藏、关注
参与评论
手机查看
返回顶部