使用 XSLT 显示 XML

--------------------------------------------------------------------------------

通过使用 XSLT,您能够把 XML 文档转换成 HTML 格式。

--------------------------------------------------------------------------------

使用 XSLT 显示 XML

XSLT 是首选的 XML 样式表语言。

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

XSLT 是在浏览器显示 XML 文件之前,先把它转换为 HTML:

使用 XSLT 显示 XML

--------------------------------------------------------------------------------

在server上通过 XSLT 转换 XML

在上面的实例中,当浏览器读取 XML 文件时,XSLT 转换是由浏览器完毕的。

在使用 XSLT 来转换 XML 时,不同的浏览器可能会产生不同结果。为了降低这样的问题,能够在server上进行 XSLT 转换。

假设您想要学习有关 XSLT 的知识,请在我们的首页查找 XSLT 教程。

XMLHttpRequest 对象

--------------------------------------------------------------------------------

XMLHttpRequest 对象

XMLHttpRequest 对象用于在后台与server交换数据。

XMLHttpRequest 对象是开发人员的梦想,由于您可以:

在不又一次载入页面的情况下更新网页

在页面已载入后从server请求数据

在页面已载入后从server接收数据

在后台向server发送数据

创建一个 XMLHttpRequest 对象

全部现代浏览器(IE7+、Firefox、Chrome、Safari 和 Opera)都有内建的 XMLHttpRequest 对象。

创建 XMLHttpRequest 对象的语法:

xmlhttp=new XMLHttpRequest();

旧版本号的Internet Explorer(IE5和IE6)中使用 ActiveX 对象:

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

XML Parser

--------------------------------------------------------------------------------

全部现代浏览器都有内建的 XML 解析器。

XML 解析器把 XML 文档转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象。

--------------------------------------------------------------------------------

解析 XML 文档

以下的代码片段把 XML 文档解析到 XML DOM 对象中:

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else

{// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.open("GET","books.xml",false);

xmlhttp.send();

xmlDoc=xmlhttp.responseXML;

--------------------------------------------------------------------------------

解析 XML 字符串

以下的代码片段把 XML 字符串解析到 XML DOM 对象中:

txt="<bookstore><book>";

txt=txt+"<title>Everyday Italian</title>";

txt=txt+"<author>Giada De Laurentiis</author>";

txt=txt+"<year>2005</year>";

txt=txt+"</book></bookstore>";

if (window.DOMParser)

{

parser=new DOMParser();

xmlDoc=parser.parseFromString(txt,"text/xml");

}

else // Internet Explorer

{

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async=false;

xmlDoc.loadXML(txt);

}

凝视:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其它浏览器使用 DOMParser 对象。

--------------------------------------------------------------------------------

跨域訪问

出于安全方面的原因,现代的浏览器不同意跨域的訪问。

这意味着,网页以及它试图载入的 XML 文件,都必须位于同样的server上。

XML DOM

--------------------------------------------------------------------------------

DOM(Document Object Model 文档对象模型)定义了訪问和操作文档的标准方法。

--------------------------------------------------------------------------------

XML DOM

XML DOM(XML Document Object Model)定义了訪问和操作 XML 文档的标准方法。

XML DOM 把 XML 文档作为树结构来查看。

全部元素能够通过 DOM 树来訪问。能够改动或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被觉得是节点。

--------------------------------------------------------------------------------

HTML DOM

HTML DOM 定义了訪问和操作 HTML 文档的标准方法。

全部 HTML 元素能够通过 HTML DOM 来訪问。

--------------------------------------------------------------------------------

载入一个 XML 文件 - 跨浏览器实例

以下的实例把 XML 文档("note.xml")解析到 XML DOM 对象中,然后通过 JavaScript 提取一些信息:

实例

<html>

<body>

<h1>W3Schools Internal Note</h1>

<div>

<b>To:</b> <span id="to"></span><br />

<b>From:</b> <span id="from"></span><br />

<b>Message:</b> <span id="message"></span>

</div>

<script>

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else

{// code for IE6, IE5

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

}

xmlhttp.open("GET","note.xml",false);

xmlhttp.send();

xmlDoc=xmlhttp.responseXML;

document.getElementById("to").innerHTML=

xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

document.getElementById("from").innerHTML=

xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;

document.getElementById("message").innerHTML=

xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;

</script>

</body>

</html>

--------------------------------------------------------------------------------

重要凝视!

如需从上面的 XML 文件("note.xml")的 <to> 元素中提取文本 "Tove",语法是:

getElementsByTagName("to")[0].childNodes[0].nodeValue

请注意,即使 XML 文件仅仅包括一个 <to> 元素,您仍然必须指定数组索引 [0]。这是由于 getElementsByTagName() 方法返回一个数组。

--------------------------------------------------------------------------------

载入一个 XML 字符串 - 跨浏览器实例

以下的实例把 XML 字符串解析到 XML DOM 对象中,然后通过 JavaScript 提取一些信息:

实例

<html>

<body>

<h1>W3Schools Internal Note</h1>

<div>

<b>To:</b> <span id="to"></span><br />

<b>From:</b> <span id="from"></span><br />

<b>Message:</b> <span id="message"></span>

</div>

<script>

txt="<note>";

txt=txt+"<to>Tove</to>";

txt=txt+"<from>Jani</from>";

txt=txt+"<heading>Reminder</heading>";

txt=txt+"<body>Don't forget me this weekend!</body>";

txt=txt+"</note>";

if (window.DOMParser)

{

parser=new DOMParser();

xmlDoc=parser.parseFromString(txt,"text/xml");

}

else // Internet Explorer

{

xmlDoc=new ActiveXObject("Microsoft.XMLDOM");

xmlDoc.async=false;

xmlDoc.loadXML(txt);

}

document.getElementById("to").innerHTML=

xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

document.getElementById("from").innerHTML=

xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;

document.getElementById("message").innerHTML=

xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;

</script>

</body>

</html>

XML(三)的更多相关文章

  1. spring3.0使用annotation完全代替XML(三)

    很久之前写过两篇博客: spring3.0使用annotation完全代替XML spring3.0使用annotation完全代替XML(续) 用java config来代替XML,当时还遗留下一些 ...

  2. 自动装配、JavaConfig、XML 三种方案之间,怎么导入和混合配置?

    在 Spring 中,这些配置方案都不是互斥的.完全可以将 JavaConfig 的组件扫描和自动装配/或 XML 配置混合在一起. Q:如何在 JavaConfig 中引用 XML 配置? Q:怎么 ...

  3. 用javascript操作xml(三)关于Jquery的html()不兼容IE的解决办法

    当 $("#xxx").html(data); 不兼容,方法替换为 document.getElementById("xxx").innerHTML=data;

  4. 【收藏用】--切勿转载Java处理XML的三种主流技术及介绍

    原帖地址 : http://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Markup Language) 意为可扩展标记 ...

  5. hadoop三个配置文件的参数含义说明core-site.xml,hdfs-site.xml,mapred-site.xml

    配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件有哪些配置可以生 ...

  6. Java 处理 XML 的三种主流技术及介绍

    Java 处理 XML 的三种主流技术及介绍 原文地址:https://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Ma ...

  7. 【Java EE 学习 45】【Hibernate学习第二天】【对象的三种状态】【一对多关系的操作】

    一.对象的三种状态. 1.对象有三种状态:持久化状态.临时状态.脱管状态(游离状态) 2.Session的特定方法能使得一个对象从一个状态转换到另外一个状态. 3.三种状态的说明 (1)临时状态:临时 ...

  8. 转载:log4j.properties log4j.xml 路径问题

    自动加载配置文件: (1)如果采用log4j输出日志,要对log4j加载配置文件的过程有所了解.log4j启动时,默认会寻找source folder下的log4j.xml配置文件,若没有,会寻找lo ...

  9. iOS 阶段学习第23天笔记(XML数据格式介绍)

    iOS学习(OC语言)知识点整理 一.XML数据格式介绍 1)概念:xml是extensible markup language扩展的标记语言,一般用来表示.传输和存储数据 2)xml与json目前使 ...

  10. Flex Viewer(三)——Config的原理

    一.概述 在上文<深入浅出Flex Viewer(二)——体系结构>中,笔者详细介绍了到Flex Viewer框架,使得读者能够对该框架源代码的关键目录和文件结构和这些文件中所包含或涉及到 ...

随机推荐

  1. poj2125Destroying The Graph(最小割+输出方案)

    题目请戳这里 题目大意:给一张有向图,现在要选择一些点,删掉图中的所有边.具体操作为:选择点i,可以选择删除从i出发的所有有向边或者进入i的所有有向边,分别有个代价ini和outi,求最小的代价删掉所 ...

  2. 阵列中条带(stripe)、stripe unit

    摘抄:http://blog.sina.com.cn/s/blog_4a362d610100aed2.html 在磁盘阵列中,数据是以条带(stripe)的方式贯穿在磁盘阵列所有硬盘中的.这种数据的分 ...

  3. Java排序之排序大综合

    一.最近写了一些排序,于是和和大家分享一下:(默认都是从小到大排序) 二.冒泡排序 1.什么是冒泡排序:原理是临近的两个数比较大小,将较大的数往后移,这样遍历一趟数组以后,最大的数就排在的最后面(时间 ...

  4. 总线接口与计算机通信(四)USB外部总线(初级认识)

    USB简介   USB是英文Universal Serial BUS(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯,是应用在PC领域的接口技术.USB接口支持设备的即插 ...

  5. [Swust OJ 794]--最近对问题(分治)

    题目链接:http://acm.swust.edu.cn/problem/794/ Time limit(ms): 1000 Memory limit(kb): 10000   Description ...

  6. BZOJ 3304: [Shoi2005]带限制的最长公共子序列( LCS )

    求个LCS, 只是有了限制, 多加一维表示匹配到z串的第几个, 然后用滚动数组 ------------------------------------------------------------ ...

  7. centos主机建立ssh互信

    ssh-keygen 生成密钥 1.ssh-keygen -t rsa 可以加密和签名 rsa 只能加密不能签名 2.ssh-copy-id -i /root/.ssh/id_rsa.pub USER ...

  8. c++设计模式总结 好久没写博客了 实在是忙

    具体代码就不贴出来了   通俗易懂的理解方式      原创 c++设计模式: 简单工厂模式 工厂模式有一种非常形象的描述,建立对象的类就如一个工厂,而需要被建立的对象就是一个个产品:在工厂中加工产品 ...

  9. 使用Jquery后去div个数

    <div id="tree1" class="tree-folder-content"> <div class="tree-fold ...

  10. [代码搜索]OpenGrok搭建简易教程

    面对着动辄几十GB且随时不断更新的大型代码,我们产生了以下需求:1.快速搜索代码2.代码存放于本地/服务器3.代码可跳转4.跨平台5.易于维护... 显然SourceInsight.ctags.gre ...