解析XSL JavaScript+XMLDOM的使用_Xml教程
推荐:解析xml的处理以及其他dom和SAX使两种主流的选择,还有JDOM,DOM4J做的不错。 DOM解析器把XML文档转化为一个包含其内容的树,并可以对树进行遍历。用DOM解析模型的优点是编程容易,开发人员只需要调用建树的指令,然后利用navigation APIs访问所需的树节点来完成任务。可以很容易的
对于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文档,并上发送到服务器。现在就不行。这些只能说明客户端的处理功能越强,安全性就越低。这也是出现客户安全认证签名的原因之一!
分享:浅析JavaScript与XML XSL的综合使用1.当用xsl来显示xml内容时,要注意在借助xsl文档来定义样式时: 在html文档中有 head base href= http://127.0.0.1:7001/MagazineResearchStageWeb/ 就意味着所引用的xsl等外部文档必须在href目录下。否则就不能引用到外部文档。 2.通过new String来处理xm
- 相关链接:
- 教程说明:
Xml教程-解析XSL JavaScript+XMLDOM的使用。