如果我有一个空的 XSL 文档,如下所示:
<body>
<div id="myList">
</div>
</body>
如何访问 div 标签并将 XSL 附加到它?例如,我想在我的 js 代码中执行以下操作,但它不输出任何内容。但是,如果我手动将 innerHTML 值插入到 div 标签中,它会起作用:
document.getElementById("myList").innerHTML = `<xsl:value-of select="Movies/Authors/FirstName"/>`
我尝试使用不同的引用样式,但似乎无法获得预期的输出。有没有办法解决?
假设您有一个 XSLT 样式表作为 XML DOM 文档和支持innerHTML
XML 元素的最新版本的浏览器(我已经在 Windows 10 Creators Update 上成功测试了当前版本的 Chrome、Firefox 和 Edge),您可以使用例如
var xslString = `<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="Root">
<div id="myList">
</div>
</xsl:template>
</xsl:stylesheet>`;
var xmlString = `<Root>
<Movies>
<Authors>
<FirstName>Steven</FirstName>
</Authors>
</Movies>
</Root>`;
var domParser = new DOMParser();
var xsltDoc = domParser.parseFromString(xslString, 'application/xml');
var xmlDoc = domParser.parseFromString(xmlString, 'application/xml');
var div = xsltDoc.querySelector('#myList');
div.innerHTML = `<xsl:value-of select="Movies/Authors/FirstName"/>`;
var proc = new XSLTProcessor();
proc.importStylesheet(xsltDoc);
document.getElementById('result').appendChild(proc.transformToFragment(xmlDoc, document));
<section>
<h1>Result</h1>
<div id="result"></div>
</section>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句