在请求和响应中使用 XML
这篇文章主要探讨在大多数情况下确实是 好主意的一种做法:向客户机返回 XML 响应。
将 XML 作为纯文本处理
处理 XML 的最简单的选择(至少就学习新的编程技术而言),就是用与处理服务器返回的其他文本片段相同的方法来处理它。换言之,基本上就是忽略数据格式,只关注服务器的响应。
在这种情况下,您要使用请求对象的 responseText 属性,就像在服务器向您发送非 XML 响应时一样(参见 清单 4)。
清单 4. 将 XML 作为普通服务器响应处理
| function updatePage() {
if (request.readyState == 4) { if (request.status == 200) { var response = request.responseText; // response has the XML response from the server alert(response); } } } |
清单 5. response 变量的值
| < ratings>< show>< title>Alias< /title>< rating>6.5< /rating>
< /show>< show>< title>Lost< /title>< rating>14.2< /rating>< /show>< show> < title>Six Degrees< /title>< rating>9.1< /rating>< /show>< /ratings> |
在这里,您可以使用 JavaScript split 函数来拆分此数据,并通过基本的字符串操作来获得元素的名称和值。毫无疑问,这是个令人头疼的过程,它无视于您花费了大量时间来阅读前几期文章中 DOM(Document Object Model)相关内容这一事实。因此,我要强调,您应该牢记:利用 responseText,可以轻松使用和输出服务器的 XML 响应,但我不会为您展示太多的代码,在能够使用 DOM 时,您不应选择这种方法来获得 XML 数据,下面您会看到这一点。
将 XML 当成 XML
尽管可以 将服务器的 XML 格式的响应视同为其他任何文本响应来处理,但这样做没有很好的理由。首先,如果您一直忠实地阅读这个系列,那么您已经学会了如何使用 DOM 这种对 JavaScript 友好的 API 来操纵 XML。还有更好的事情,JavaScript 和 XMLHttpRequest 对象提供了一个属性,它能完美地获取服务器的 XML 响应,并且是以 DOM Document 对象的形式来获取它。
清单 6 给出了一个实例。这段代码与 清单 4 类似,但没有使用 responseText 属性,回调函数使用的是 responseXML 属性。该属性在 XMLHttpRequest 上可用,它以 DOM 文档的格式返回服务器的响应。
清单 6. 将 XML 当作 XML
| function updatePage() {
if (request.readyState == 4) { if (request.status == 200) { var xmlDoc = request.responseXML; // work with xmlDoc using the DOM } } } |
- 本文关键词:

