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

     
     
  • 相关阅读:
    JDBC事务--软件开发三层架构--ThreadLocal
    SQL查询-约束-多表
    SQL基本语法总结
    DDL
    ZOJ 1178 Booklet Printing
    ZOJ 1107 FatMouse and Cheese
    ZOJ 1099 HTML
    ZOJ 1041 Transmitters
    ZOJ 1095 Humble Numbers
    ZOJ 1105 FatMouse’s Tour
  • 原文地址:https://www.cnblogs.com/xuqp/p/9491511.html
Copyright © 2011-2022 走看看