在Ajax中进行XML处理,第1部分: 四种方法

在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 所描述。

时间: 2016-12-26

在Ajax中进行XML处理,第1部分: 四种方法的相关文章

IOS中Json解析实例方法详解(四种方法)_IOS

作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此"http://www.bejson.com/"网站来进行JSON格式化校验(点击打开链接).此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便. 从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的iOS版本,可以使用第三方库来解析Json. 本文将介绍Tou

php 解析xml 的四种方法详细介绍_php技巧

php 解析xml 的四种方法 XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. 1. XML Expat Parser: XML Parser使用Expat XML解析器.Expat是一种基于事件的解析器,它把XML文档视为一系列事件.当某个事件发生时,它调用一个指定的函数处理它.Expat是无验证的解析器,忽略任何链接到文档的DTD.但是,如

Android中activity跳转按钮事件的四种写法_Android

具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.i

Android中activity跳转按钮事件的四种写法

具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.i

Android编程实现XML解析与保存的三种方法详解

本文实例讲述了Android编程实现XML解析与保存的三种方法.分享给大家供大家参考,具体如下: 简介 在Android开发中,关于XML解析有三种方式,分别是: 1. SAX 基于事件的解析器,解析速度快,占用内存少.非常适合在Android移动设备中使用. 2. DOM 在内存中以树形结构存放,因此检索和更新效率会更高.但是对于特别大的文档,解析和加载整个文档将会很耗资源 3. PULL 基于事件的解析器,不同于SAX是,PULL是主动请求下一个事件,所以在可控上PULL要比SAX实用.An

MySQL中优化sql语句查询常用的30种方法

本篇文章是对MySQL中优化sql语句查询常用的30种方法进行了详细的分析介绍,需要的朋友参考下   1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以

C#中调用SAPI实现语音识别的2种方法

  这篇文章主要介绍了C#中调用SAPI实现语音识别的2种方法,本文直接给出实现代码,需要的朋友可以参考下 通过微软的SAPI,不仅仅可以实现语音合成TTS,同样可以实现语音识别SR.下面我们就介绍并贴出相关代码.主要有两种方式: 1.使用COM组件技术,不管是C++,C#,Delphi都能玩的转,开发出来的东西在XP和WIN7都能跑.(注意要引入系统组件SpeechLib,XP要安装识别引擎) 2.使用WIN7的windows api,其实最终还是调用了SAPI,所以开发出来的东西就只能在WI

在Excel单元格中给文字加下划线的几种方法

  在Excel单元格中给文字加下划线的几种方法          方法一: 1.首先我们把excel的网格线去掉,这样我们在演示的时候会看的更清楚 执行:页面布局--工作表选项--网格线 2.excel单元格内的文字加下划线方法一:开始--字体--下划线 快捷键:ctrl+u 方法二 1.右键单元格--设置单元格格式 2.在单元格格式设置界面 字体--下划线--单下划线--确定 方法三: 1.插入--插图--形状--线条 2.在单元格内画出下划线

在PPT中插入Flash动画四种方法

  现在很多学科经常要做一些研究性学习或者调查报告,使用Powerpoint是个不错的主意. 而很多时候,我们需要添加一些flash动画来使我们的幻灯片更加生动.美观和具有说服力.但是Powerpoint中没有提供类似插入图片那样直接的功能.那么如何在PPT中插入flash动画影片呢? 下面我来教你四种方法: 方法一 将扩展名为. SWF的Flash动画文件插入PPT ---插入一个由文件创建的对象 ---在"动作设置"中的"对象动作"选项中选择"激活内容