XSL &#106avascript+XMLDOM的使用

dom|xml

    对于XSL而言,xml节点下的内容只要是配对的<>和</>不影响xml文档的显示的,这些都会被省略,没有任何样式意义(即使是html中的tag)。
  对于xml,xsl最关键的问题是:tag符的匹配问题。

  对于xsl的显示:必须是一个父节点下,几个平等的子节点。当子节点们在同一父节点下多次出现的,这时要考虑增加一层相同的节点,并且在把原来的节点按成对出现或独自出现的原则放到该层节点之下。

  对于xsl支持xpath层次结构,对于用xsl来显示xml文档,就要根据它来"爬树".(记住:首/为根,单/为层,//为树(//代表整个文档,.//以当前节点为根), ..为父,@为属性,首串为子) 当然还可以通过<xsl:apply-templates select="">,<xsl:template match="">来实现节点之间的显示转换;而且template还可以级联向下调用.当需要进行排序的时候,<xsl:for-each select="./dk" order-by="chua/jfdjf">...</for-each>这是升序排序,当需要降序排序的时候,在order-by的值前加-即可,即<xsl:for-each select="./dk" order-by="-chua/zi">...</for-each>

  当在javascript中利用xml和xsl进行页面,显示时,要注意两个问题:

  1.javascript页面缓存,可能会影响到页面的显示。可以通屏蔽js的方式,而是连接到一个由jsp/servlet的生成.js文件(并response.setheader("cache-control","on-cache")等.然后在主页面中用javascript连接到该javascript文件。

  即:<script src='sript.jsp' type="jsp/JavaScript"/>即可。

  2.对于使用服务器生成或存在的xml或xsl文件或字符串来显示页面时。必须指定这些文件或字符串读取和分析的方式为: doc.async=false;//不许异步的读取数据

   doc.validateOnParse=false;//不分析有效性

  否则会出现在javascript中出现:'完成该操作所需的数据还不可使用'的页面错误。

  用xmlhttp请求时,用.send(doc)方法。例

var xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
   xmlhttp.open("post","http://59.64.71.16:7001/MagazineResearchStageWeb/MagazineInfoResearch.jsp",false);
   xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   xmlhttp.setRequestHeader("Content-Length",root.length);
   xmlhttp.send(root); alert(root);
  document.write(xmlhttp.responseText);

  注意:不要用.sendXML方法,不支持。而且.send()既可以是xml文档对象,也可以是字符串。在非框架内的html页面使用XMLHTTP技术发送xml时可能会出错的,需要调低安全等级才能使用,这是因为xmlhttp的一些比较强的功能,威胁到机器的安全。像以前的msxml就支持访问本地文件系统上提交的xml文档,并上发送到服务器。现在就不行。这些只能说明客户端的处理功能越强,安全性就越低。这也是出现客户安全认证签名的原因之一!

时间: 2024-11-05 14:52:29

XSL &#106avascript+XMLDOM的使用的相关文章

XSL JavaScript+XMLDOM的使用

dom|javascript|xml 对于XSL而言,xml节点下的内容只要是配对的<>和</>不影响xml文档的显示的,这些都会被省略,没有任何样式意义(即使是html中的tag). 对于xml,xsl最关键的问题是:tag符的匹配问题. 对于xsl的显示:必须是一个父节点下,几个平等的子节点.当子节点们在同一父节点下多次出现的,这时要考虑增加一层相同的节点,并且在把原来的节点按成对出现或独自出现的原则放到该层节点之下. 对于xsl支持xpath层次结构,对于用xsl来显示xml

利用XSL和ASP实现XML文档在线编辑

xml|在线 本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法.由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的处理必须在服务器端进行.要编辑XML文档,首先要做的事情就是怎样把这些数据提取并显示给访问者,XSL为我们显示XML文件提供了一个很好的解决方案.下面的例子就是利用XSL样式单把XML文档显示出来,供用户进行编辑,然后再把编辑后的数据提交到服务器,在服务器端进行数据的更新.这里采用ASP(Active Server Pages)来完成我们的任务

XMLDOM对象方法:Document对象方法

dom|xml|对象   abort 方法  作   用  abort 方法取消一个进行中的异步下载 基本语法  xmlDocument.abort(); 说   明  如果这个方法在异步下载时被呼叫,所有的解析动作会停止,而且在内存中的文件会被释放. 范   例 xmlDocument AppendChild 方法 作   用  加上一个节点当作指定节点最后的子节点. 基本语法  xmlDocumentNode.appendChild(newChild); 说   明  newChild 是附

利用XSL和ASP在线编辑XML文档

xml|在线 本文通过一个详细的例子,来阐述了在线编辑XML文档数据的方法.由于Netscape对XML的支持比较弱,因此,要实现跨平台的数据交换,数据的处理必须在服务器端进行.要编辑XML文档,首先要做的事情就是怎样把这些数据提取并显示给访问者,XSL为我们显示XML文件提供了一个很好的解决方案.下面的例子就是利用XSL样式单把XML文档显示出来,供用户进行编辑,然后再把编辑后的数据提交到服务器,在服务器端进行数据的更新.这里采用ASP(Active Server Pages)来完成我们的任务

XSL基础教程第四章

基础教程   XSL索引    XSL可以用来对一个XML文档进行索引.      将索引信息放在哪里    现在重新看看在以前许多章节中都曾看到过的 XML文档:       <?xml version="1.0"?>       <CATALOG>       <CD>       <TITLE>Empire Burlesque</TITLE>       <ARTIST>Bob Dylan</ARTIS

XSL基础教程第五章

基础教程   XSL条件IF    XSL可以用一个IF语句过滤来自XML文档的信息.      在哪里放置IF条件    现在来重新看看你已经看过多次的XML文档:       <?xml version="1.0"?>       <CATALOG>       <CD>       <TITLE>Empire Burlesque</TITLE>       <ARTIST>Bob Dylan</ARTI

XSL简明教程(5)XSL的索引

教程|索引   五. XSL 的索引 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />   如果我需要将元素的显示按一定的顺序排列,应该如何建立XSL的索引呢? 我们还是来看前面的例子,还是这段代码:   <?xml version="1.0" encoding="ISO8859-1" ?> <CATALOG>

XSL简明教程(4)在服务器端的实现

服务器|教程 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  四: XSL --- 在服务器端的实现   1.兼容所有的浏览器 在上面一章我们介绍了可以通过JavaScript调用浏览器的XML parser(解析软件)来转换XML文档.但是这个方案依然有个问题:如果浏览器没有XML parser插件怎么办?(注:IE5内自带XML parser) 为了使我们的XML

XSL简明教程(3)在客户端的实现

教程|客户端 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  三. XSL--在客户端的实现   1.JavaScript解决方案 在上面的章节中我们已经解释了XSL是如何将XML转换成HTML文件.方法就是在XML文档的头部加入一个XSL样式表信息,然后让浏览器执行转换过程. 这种方法在大部分情况下都做得很好,但是在不支持XML的浏览器中就无法正确显示了. 一个更好