本文介绍一个JavaScript XSLT处理XML页面展现的小功能。一共分两个方法,分别使用transformToFragment()以及transformToDocument()。两个方法均可在Firefox下工作。

最近运用Firefox进行网页的调试,发现有些Javascript XSLT处理XML的句子只是支撑IE浏览器。网络中的一些介绍JavaScript XSLT 处理XML的文章基本上都是根据AJAX来做的。

怎么运用 JavaScript XSLT 处理 XML 文件(xml引用xsl)  Firefox 第1张

写了一个Javascript XSLT处理XML展示页面的小功用。现在帖出来和我们同享,期望我们给点改善定见。

在Firefox中运用XSLTProcessor目标处理XML,首要运用该目标的两个办法:

一、transformToFragment()。

二、transformToDocument()。

下面的代码只是运用transformToFragment()办法来完成对XML文件处理,假如你对在Firefox中运用 Javascript XSLT 处理XML文件感兴趣的话无妨试着将以下代码改写成运用transformToDocument()办法来完成的处理功用。

Javascript 代码如下:

  1. functioninitialize(){
  2. varxmlDoc;
  3. varxslDoc;
  4. //判别浏览器的类型
  5. if(document.implementation&&document.implementation.createDocument)
  6. {
  7. //支撑Mozilla浏览器
  8. try
  9. {
  10. xmlDoc=document.implementation.createDocument("","",null);
  11. xmlDoc.async=false;
  12. xmlDoc.load("guestbook/guestbook.xml");
  13. }
  14. catch(e)
  15. {
  16. alert("error:001");
  17. }
  18. try
  19. {
  20. xslDoc=document.implementation.createDocument("","",null);
  21. xslDoc.async=false;
  22. xslDoc.load("guestbook/guestbook.xsl");
  23. }
  24. catch(e)
  25. {
  26. alert("error:002");
  27. }
  28. try
  29. {
  30. //界说XSLTProcessor目标
  31. varxsltProcessor=newXSLTProcessor();
  32. xsltProcessor.importStylesheet(xslDoc);
  33. varoResultFragment=xsltProcessor.transformToFragment(xmlDoc,document);
  34. //将解析过的文本输出到页面
  35. varoDiv=document.getElementById("guestbookPanel");
  36. oDiv.appendChild(oResultFragment);
  37. }
  38. catch(e)
  39. {
  40. alert("error:003");
  41. }
  42. }
  43. elseif(typeofwindow.ActiveXObject!='undefined')
  44. {
  45. //varxmlDoc=Server.CreateObject("Msxml2.DOMDocument.4.0");
  46. //支撑IE浏览器
  47. xmlDoc=newActiveXObject('Microsoft.XMLDOM');
  48. xslDoc=newActiveXObject('Microsoft.XMLDOM');
  49. xmlDoc.async=false;
  50. xslDoc.async=false;
  51. xmlDoc.load("guestbook/guestbook.xml");
  52. xslDoc.load("guestbook/guestbook.xsl");
  53. guestbookPanel.innerHTML=xmlDoc.documentElement.transformNode(xslDoc);
  54. }
  55. else
  56. {
  57. alert("Browserunknown!");
  58. }
  59. }

javascript dom 处理XSL显现数据的第二种方法,首要代码如下:

  1. varxmlDoc;
  2. varxslDoc;
  3. //判别浏览器的类型
  4. if(document.implementation&&document.implementation.createDocument)
  5. {
  6. //支撑Mozilla浏览器
  7. try
  8. {
  9. xmlDoc=document.implementation.createDocument("","",null);
  10. xmlDoc.async=false;
  11. xmlDoc.load("guestbook/guestbook.xml");
  12. xslDoc=document.implementation.createDocument("","",null);
  13. xslDoc.async=false;
  14. xslDoc.load("guestbook/guestbook.xsl");
  15. //界说XSLTProcessor目标
  16. varxsltProcessor=newXSLTProcessor();
  17. xsltProcessor.importStylesheet(xslDoc);
  18. //transformToDocument方法
  19. varresult=xsltProcessor.transformToDocument(xmlDoc);
  20. varxmls=newXMLSerializer();
  21. document.getElementById("guestbookPanel").innerHTML=xmls.serializeToString(result);
  22. }
  23. catch(e)
  24. {
  25. alert("Unabletodoxml/xslprocessing");
  26. }
  27. }
  28. elseif(typeofwindow.ActiveXObject!='undefined')
  29. {
  30. try
  31. {
  32. //支撑IE浏览器
  33. xmlDoc=newActiveXObject('Msxml2.DOMDocument');
  34. xslDoc=newActiveXObject('Msxml2.DOMDocument');
  35. xmlDoc.async=false;
  36. xslDoc.async=false;
  37. xmlDoc.load("guestbook/guestbook.xml");
  38. xslDoc.load("guestbook/guestbook.xsl");
  39. guestbookPanel.innerHTML=xmlDoc.documentElement.transformNode(xslDoc);
  40. }
  41. catch(e)
  42. {
  43. alert("Unabletodoxml/xslprocessing");
  44. }
  45. }
  46. else
  47. {
  48. alert("Browserunknown!");
  49. }

【修改引荐】

  1. Javascript完成的超强语法高亮引擎
  2. 痛陈Javascript的缺陷
  3. JavaOne 2009第三天:微软与Sun/Oracle携手并进
  4. 开发高可移植性J2ME的软件
  5. Java虚拟机(JVM)中的内存设置详解
转载请说明出处
知优网 » 怎么运用 JavaScript XSLT 处理 XML 文件(xml引用xsl)

发表评论

您需要后才能发表评论