在Ajax 程序中解析和转换XML
简介:任何编程问题都可以通过多种正确的方法解决。本系列共考察了四种创建一个 Asynchronous JavaScript + XML (Ajax) 天气预报面板(weather badge)的方法 ,这是一种小型可重用部件,可以轻松嵌入到任何 Web 页面。本文是第一篇文章,主要介绍一些基础内容,同时审视第一种方法 —— 遍历 DOM 树。
希腊哲学家亚里士多德曾经写到:“通往失败的道路有许多条……,但通往成功的道路仅有一条。” 遗憾的是,亚里士多德并不是一名计算机 程序员。
虽然亚里士多德的第一个论断符合编程的特点 — “通往失败的道路有许多条” — 他的第二个推测却没有一点依据。
本系列文章针对同一问题运用了四种方法。每种方法都被证明是正确的 — 每种方法都有各自的优缺点。它们要解决的问题并不复杂,同样,解决方案也不复杂。 尽管如此,这些方法涉及了大量 “权衡”,可以包含到非常简单的解决方案中。
问题:创建一个可重用的 Ajax 天气预报面板
要定义需要解决的问题,我列出了以下的问题说明:
构建一个 Ajax 库读取从国家气象服务(National Weather Service)获得的最新观测数据,然后提取一部分数据并转换为 HTML 格式,从而创建一个天气预报面板。
许多 Web 站点喜欢在 Web 页面上显示当地的天气状况。为此,他们需要访问最新的气象信息。那么如何获得这些数据呢?
在美国,National Weather Service (NWS) 提供大量的天气信息。其中包括美国数百个城市的当前天气观测数据。该数据可使用 RSS 或 XML 格式。
在 Ajax 中,字母 X 代表 XML,所以 NWS 数据似乎非常适合 Ajax 方法。
四种可能的解决方案
本系列文章共考察了四种不同的方法,用于构建一个 Ajax 天气预报面板 — 一个小的信息框,包含 NWS 监测的任何城市或城镇的气象信息。其设计目标是
简单性
易于重用
我将利用这四种方法来展示各个方法内在的 “权衡” 问题。任何一种方法都不存在绝对的对与错。
本质上讲,每种方法的实现截然不同,如 表 1 所描述。