Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/3/20 5:16:38
调用xsl来解析xml文档(js异步)_[XML教程]

调用xsl来解析xml文档(js异步)_[XML教程]

















查看演示


1.新建一个vs2003的web工程,取名为XMLTest




2.将工程目录下的WebForm1.aspx中内容全部删除,只留下顶部的一条语句:




<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="XMLTest.WebForm1" %>




3.修改WebForm1.aspx.cs中内容,在Page_Load中加入:




XmlDocument doc=new XmlDocument();
String xmlfile=string.Empty;
xmlfile=Context.Request.PhysicalApplicationPath+(Request.QueryString["sel"].ToString()=="xml"?"\\hello.xml":"\\hello.xsl");
doc.Load(xmlfile);
Response.Write(doc.InnerXml);




4.在工程根目录下新增test.htm,并设为工程首页:













onclick="GetXml()">











5.运行工程,看看效果吧!




hello.xml(注意:我的xml文档中并没有指定对应的xsl解析文件名)












Belgian Waffles
5.95
Two of our famous Belgian Waffles
with plenty of real maple syrup.

650


Strawberry Belgian Waffles
7.95
Light Belgian waffles covered with
strawberries and whipped cream.

900


Berry-Berry Belgian Waffles
8.95
Light Belgian waffles covered
with an assortment of fresh berries
and whipped cream.

900


French Toast
4.50
Thick slices made from our homemade
sourdough bread.

600


Homestyle Breakfast
6.95
Two eggs, bacon or sausage, toast,
and our ever-popular hash browns.

950







hello.xsl




















嘿嘿












xml文档只有纯粹的数据,如果需要显示到html页面中的话,一般需要使用定制的xsl文档来解析,或者手工通过js来读取xml中的值显示到html中的dom树中,当使用xsl文档来解析时,相应的xml文档中必须指定对应的xsl文档才能正常显示,但当有些程序动态输出xml文档时,并没有指定相应的xsl文档,这时就必须通过其它途径来加载相应的xsl文档来解析,当然,在服务器端输出xml文档时,通过一些xml api也可以实现,我这儿描述的是通过js来实现的一种方式。用这种方式的话,就抛开了服务器平台的限制,服务器端只需要输出相应的xml文档(.net/j2ee都可以),并且将对应的xsl文档输出给客户端(可以输出流或直接在客户端加载xsl文档)。




这里有几个需要注意的地方,我们一般是使用Msxml2.Document组件来加载xml文档的,但当动态使用xsl解析xml文档时,必须使用Msxml2.FreeThreadedDOMDocument这种自由线程的组件,同时使用MSXML2.XSLTemplate模板组件来加载xml,xsl数据,通过MSXML2.XSLTemplate的transform方法,就可以动态的用xsl来解析xml数据了,另外,IE5开始,系统默认的xml组件是msxml2,如果需要使用更新的msxml组件需要安装更新的msxml组件包,并指定新的名称,例如Msxml2.FreeThreadedDOMDocument.4.0,现在最新的msxml组件是6.0beta,可在M网站下载。




附件下载:XMLTEST




作者:remix 来源:蓝色理想

























If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759