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中的'转化为"'"
var rep = /'/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
xsl 和xml transform方法的调用的更多相关文章
- java解析xml字符串方法
一,用DOM4J 针对无重复标签的xml字符串格式,如下: 针对此种情况可用DOM4J解析法,引入 dom4j的相关jar包代码如下: Document document=DocumentHelpe ...
- javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
今天在调代码的时候遇到了一个异常: javax.xml.transform.TransformerConfigurationException: Could not compile styleshee ...
- Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException
转自:https://www.jb51.net/article/98644.htm Java xml出现错误 javax.xml.transform.TransformerException: jav ...
- JAVA常用的XML解析方法
转并总结自(java xml) JAVA常用的解析xml的方法有四种,分别是DOM,JAX,JDOM,DOM4j xml文件 <?xml version="1.0" enco ...
- struts2 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用
Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...
- Android中通过WebView控件实现与JavaScript方法相互调用的地图应用
在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...
- 三种读写XML的方法
XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...
- Spring事务传播特性的浅析——事务方法嵌套调用的迷茫
Spring事务传播机制回顾 Spring事务一个被讹传很广说法是:一个事务方法不应该调用另一个事务方法,否则将产生两个事务.结果造成开发人员在设计事务方法时束手束脚,生怕一不小心就踩到地雷. 其实这 ...
- springMVC在普通方法中调用service方法
SpringContextUtil类 package com.common.util; import org.springframework.beans.BeansException;import o ...
随机推荐
- Android 的学习心得
https://www.jianshu.com/p/f93a6c75940c 一个2年安卓开发者的一些经验分享
- 【Oracle 12c】CUUG OCP认证071考试原题解析(29)
29.choose the best answer Evaluate the following query: SQL> SELECT promo_name || q'{'s start dat ...
- Codeforces Global Round 2部分题解
传送门 好难受啊掉\(rating\)了-- \(A\ Ilya\ and\ a\ Colorful\ Walk\) 找到最后一个与第一个颜色不同的,比一下距离,然后再找到最左边和最右边与第一个颜色不 ...
- BZOJ 3813--奇数国(线段树&欧拉函数&乘法逆元&状态压缩)
3813: 奇数国 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 755 Solved: 432[Submit][Status][Discuss] ...
- Java常见错误及解决方案
1.类定义未找到:java.lang.NoClassDefFoundError java类文件没有上传:上传了,服务器没找到,建议将JSP页面重新更新或重启服务器. 2.
- docker微服务部署之:一,搭建Eureka微服务项目
先说明一下docker需要搭建的微服务的基本情况: 项目情况:一个demo_parent项目,下面三个子模块:demo_eureka(eureka服务).demo_article(文章服务).demo ...
- JVM调优总结 -Xms -Xmx -Xmn -Xss(转自:iteye unixboy)
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作 ...
- vue 在 html 中自定义 tag
v-if,v-for,:key,:style,v-text,@click,:src,:poster,:class,:href
- apache 子域名自动与子域名同名的目录绑定
假设有域名domain.com,已经泛解析子域名*.domain.com到该主机的ip,web根目录为/var/www/,在访问a.domain.com时,能自动绑定/var/www/a/目录,访问b ...
- selenium和appium启动的感悟
阅读源码后整理记录如下: selenium : 1.若为webdriver.Chrome()方式启动:①子程序打开chromedriver.exe程序,程序打开后,监听9515端口作为remote_s ...