zoukankan      html  css  js  c++  java
  • xsl 和xml transform方法的调用

    xsl 和xml生成html,兼容多个浏览器

    <html>
    	<head>
    		<meta charset="UTF-8"/>
    	</head>
    	<body id="srcDiv">
    		
    	</body>
    	<script>
    	var oXSLDoc = loadXMLDoc("./XMLSelTree.xsl");
    	var oXMLDom = loadXMLDoc("./XMLDoc.xml");
    	var p_oSrcDiv = document.getElementById("srcDiv");
    	//var sHtml = oXMLDom.transformNode(m_oConfig.oXSLDoc);
    	var sHtml = xml_transformNode(oXMLDom, oXSLDoc);
    	//将HTML中的&apos;转化为"'"
    	var rep = /&apos;/g;
    	sHtml = sHtml.replace(rep,"'");
    	p_oSrcDiv.innerHTML	= sHtml;
    	function loadXMLDoc(xml_name) 
    	{
    		var xmlDoc;
    		try 
    		{ 
    			xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); // Support IE 
    		} 
    		catch(e) 
    			{ 
    				try 
    				{ 
    					// Support Firefox, Mozilla, Opera, etc 
    					xmlDoc = document.implementation.createDocument("", "", null) ;// 创建一个空的 XML 文档对象。 
    				} 
    				catch(e) 
    				{ 
    					alert(e.message); 
    				} 
    			} 
    			// 加载XML文档 
    			try 
    			{ 
    				xmlDoc.async = false; // 关闭异步加载 
    				xmlDoc.load(xml_name); 
    			} 
    			catch(e) 
    			{ 
    				// alert(e.message) 如果浏览器是Chrome,则会catch这个异常:Object # (a Document) has no method "load",所以,以下实现支持chrome加载XML文档(只是粗略的写下) 
    				var xhr = new XMLHttpRequest(); 
    				xhr.open("GET", xml_name, false);
    				xhr.send(null);
    				
    				if (xhr.responseXML) {
    					xmlDoc = xhr.responseXML.documentElement;
    				} else {
    					xmlstr = xhr.response;
    					parser = new DOMParser();
    					xmlDoc = parser.parseFromString(xmlstr, "text/xml");
    				}
    			} 
    			return xmlDoc; 
    	}
    	// 使用XSLT把XML文档转换为一个字符串。 
    	function xml_transformNode(xmlDoc, xslDoc) {
    	   console.log("xmlDoc", xmlDoc);
    	  console.log("xslDoc", xslDoc);
    		if (null == xmlDoc) return "";
    		if (null == xslDoc) return "";
    		if (window.ActiveXObject) // IE 
    		{
    			return xmlDoc.transformNode(xslDoc);
    		}
    		else // FireFox, Chrome 
    		{
    			//定义XSLTProcesor对象 
    			var xsltProcessor = new XSLTProcessor();
    			xsltProcessor.importStylesheet(xslDoc);
    			// transformToDocument方法
    		   <!--  var result = xsltProcessor.transformToDocument(xmlDoc); -->
    		   // transformToFragment 方法 
    			var result = xsltProcessor.transformToFragment(xmlDoc,document);
    			console.log("result", result);
    			var xmls = new XMLSerializer();
    			var rt = xmls.serializeToString(result);
    			return rt;
    		}
    	}
    </script>
    </html>

    transformToDocument API

    使用transformToDocument 方法,需要在xsl的文件中,加入outPut的方法才可以


    用这个transformToDocument API,需要设置这个outputtype 

    transformToDocument API

     
     
  • 相关阅读:
    go语言笔记——append是内置的函数!!!new是一个函数!!!调试可以使用闭包,本质上是print调试,尼玛!
    go语言笔记——defer作用DB资源等free或实现调试
    提高mysql查询效率的六种方法
    无线网络wifi (WPA/WPA2)密码破解方法
    wifi密码破解方法总结(含破解软件下载链接)
    linux 创建账户
    vim中设置tab的长度的方法
    JAVAC 命令使用方法
    Linux环境下编译并执行ava helloworld程序
    java hadoop file system API
  • 原文地址:https://www.cnblogs.com/xuqp/p/9491511.html
Copyright © 2011-2022 走看看