javascript - 使用 MSXML 2.0 执行 XSLT 转换

标签 javascript xml xslt dom

我正在尝试一些方法来使用 xslt 和 xml 作为字符串来执行 xslt 转换。 如果我们传递 xml 文件的 url,那么使用 load() 方法就可以正常工作。

function init(xml, xslt) {
    var srcTree = new ActiveXObject("Msxml2.DOMDocument.6.0");
    srcTree.async=false;
    srcTree.load(xml); 
    var xsltTree= new ActiveXObject("Msxml2.DOMDocument.6.0");
    xsltTree.async = false;
    xsltTree.load(xslt);
    var resTree = document.getElementById("HTMLData");
    resTree.innerHTML = srcTree.transformNode(xsltTree);
}

在上面的方法中,我们传递 xml 和 xslt 的位置 (url)。但根据要求,我们需要将整个 xml 和 xslt 作为字符串传递(如 <?xml version= ....)。 如果您发现很难理解我的问题,请评论这个问题 不容易理解。提前致谢。

编辑:

可以使用(示例)调用上述函数:

init('/myfiles/xml/books.xml', '/myfiles/xslt/style.xslt');

但是我需要将 xml 存储为 JavaScript 中的字符串变量,然后传递这些字符串 变量传递给 init 方法。示例:

var xmlDocument = '<?xml version='1'?><books>....</books>';
var xsltDocument = '<?xml version='1'?><xsl xmlns:xsl='...'....</xsl>';
init(xmlDocument, xsltDcoument);

最佳答案

使用loadXml而不是load - 请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/ms754585(v=vs.85).aspx

function init(xml, xslt) { 
    var srcTree = new ActiveXObject("Msxml2.DOMDocument.6.0"); 
    srcTree.async=false; 
    srcTree.loadXml(xml);  
    var xsltTree= new ActiveXObject("Msxml2.DOMDocument.6.0"); 
    xsltTree.async = false; 
    xsltTree.loadXml(xslt); 
    var resTree = document.getElementById("HTMLData"); 
    resTree.innerHTML = srcTree.transformNode(xsltTree); 
} 

关于javascript - 使用 MSXML 2.0 执行 XSLT 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10024176/

相关文章:

javascript - 使用名为 piety 的 jQuery 图表插件设置多个 if 条件

javascript - 如何使用 JavaScript 转换 XML 和 XSLT?

xml - 如何使用 Elastic MapReduce 对数百万个小型 S3 xml 文件运行 XSLT 转换?

xml - 使用 XPATH 和 XSLT 根据属性值的某些相等条件在 XML 中提取相关的不同元素标签

javascript - 为什么flow在使用instanceof时会给出uncovered code warning?

javascript - 当你离开页面底部 100 像素时淡出 'scroll to top' 按钮

sql - 如何将 xml 数据从一个存储过程传递到另一个存储过程?

java - 如何使用 Xalan 更改一些现有的 Java XSLT 代码以使用 Saxon 和 TinyTree

javascript - 可滚动的 div 自动滚动

java - cvc-elt.1.a : Cannot find the declaration of element 'people'