Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29306741
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2009-11-13 10:04:32

注释:使用 CSS 格式化 XML 不能代表 XML 文档样式化的未来。XML 文档应当使用 W3C 的 XSL 标准进行格式化!
我的观点:XML本来就是用来存储数据用的。没有必要说加上CSS来格式化显示出来。
不过看一下如何使用XSL进行格式化显示!

使用 XSLT 显示 XML


XSLT (eXtensible Stylesheet Language Transformations) 远比 CSS 更加完善。

使用 XSLT 的方法之一是在浏览器显示 XML 文件之前,先把它转换为 HTML。

XML 解析器


大多数浏览器都有读取和操作 XML 的内建 XML 解析器。

解析器把 XML 转换为 JavaScript 可访问的对象。

个人感觉:JSON是JS非常友好的对象哦!这个解析器估计是一出!


解析 XML

所有现代浏览器都有读取和操作 XML 的内建 XML 解析器。

解析器把 XML 载入内存,然后把它转换为可通过 JavaScript 访问的 。

您将在本教程的下一节中学习更多有关 XML DOM 的知识。

微软的 XML 解析器与其他浏览器中的解析器之间,存在一些差异。微软的解析器支持 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都包含遍历 XML 树、访问插入及删除节点(元素)及其属性的函数。

在本教程中,我们将为您展示如何创建可同时工作于 Internet Explorer 和其他浏览器中的脚本。

注释:当我们谈及 XML 解析,我们常常会使用有关 XML 元素的术语:。

(来看一下如何利用JS进行解析XML文档的!)

var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("note.xml");

在 Firefox 及其他浏览器中的 XML 解析器

下面的 JavaScript 片段把 XML 文档 ("note.xml") 载入解析器:

var xmlDoc=document.implementation.createDocument("","",null);//IE与FF还不一样!
xmlDoc.async="false";
xmlDoc.load("note.xml");

XML DOM(为了让程序语言读取XML而做的DOM)

XML DOM (XML Document Object Model) 定义一套访问和操作 XML 文档的标准方法。
如果想要访问XML里面的数据就可以通过DOM进行操作!

XMLHttpRequest 对象


在所有现代浏览器中(包括 IE 7):

xmlhttp=new XMLHttpRequest()

在 Internet Explorer 5 和 6 中:

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")

(能过JS对XML文档的操作能够非常方便地操作XML。从而能够将XML当成一个数据岛存储数据然后可以通过 不同的形式
进行调用显示!)


XML 命名空间可提供避免元素命名冲突的方法。
由于 XML 中的元素名是预定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。
(如果加载了两份XML文档的话就有可能会出来命名冲突的情况!)

使用前缀来避免命名冲突

此文档带有某个表格中的信息:

Apples Bananas
即我们在我们的XML文档前面添加前缀出来就可以避免出现这种命名冲突的情况了!


African Coffee Table
80
120


与仅仅使用前缀不同,我们为

标签添加了一个 xmlns 属性,这样就为前缀赋予了一个与某个命名空间相关联的限定名称。

(这个吧就跟我们的JSP里面的JSTL的感觉是一样的!)


XML CDATA


所有 XML 文档中的文本均会被解析器解析。

只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。

()

BillGates
解析成:

Bill
Gates

如果变成:
BillGates]>
则里面的文档不会解析了。
比如说我们要写一些实体字符> 之类的。可以通过 这样的方式不让它去解析就行了。

所以我们在提供数据接口的时候要加上这个东西进来。就是为了防止解析掉了!

CDATA 内部的所有东西都会被解析器忽略。

假如文本中包含了大量的 "<" 和 "&" 字符 - 就像编程代码中经常出现的情况一样 - 那么这个 XML 元素就可以被定义为一个 CDATA 部分。

CDATA 区段开始于 ",结束于 "]]>"


结论是:编码属性应当被指定为文档被保存时所使用的编码。我最好的避免错误的建议是:

  • 使用支持编码的编辑器
  • 确定编辑器使用的编码
  • 在您的 XML 文档中使用相同的编码属性
ASP生成XML的一个示例
地址
输出:

John
George
Don't forget the meeting!

目前很多的接口都是这样来调用的。即 A提供数据出来通过编写出来相关的XML文档。
然后在其他的系统中进行调用。然后得到一个XML文档对其作相关的解析处理!

这样的话我觉得:这些文件都是ASP文件。即我得布置在IIS服务器上面即做动态请求处理。这样事必会对IIS
服务器压力过高。如果有1W个并发的话我估计IIS就有可能会出现故障。
我的解决办法:将需要的接口文件输出到一个XML文件。而这个文件可以做一个单独的后台如果业务有需求调用就重新生成这个XML文件接口。当然不一定是XML文件的也可以是JSON的或TXT的!
然后我可以将这些静态的文件放到静态文件上面!
前端再加一个squid缓存用。足够顶一W个并发了!
(哦对这样理解接口其实是错误的!
因为接口的内容都是先经过动态处理完之后再输出的。
比如说我可能要先做一次DB查询得到想要的数据然后再输出来。你如果将其放到缓存服务器了人家如何动态处理?所以。输出XML文件的方法MS不行!!!


把数据存储到 XML 文件


通常,我们在数据库中存储数据。不过,如果希望数据的可移植性更强,我们可以把数据存储 XML 文件中。
(对于那些不会经常变更的数据我们可以将其保存到XML文件里面去。这样能够上缓存!)







阅读(1080) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~