我正在尝试一些方法来使用 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/