我在 JavaScript 中使用 XSLT 转换 XML 数据时遇到问题。我的设置涉及获取 XML 数据和 XSLT 样式表,该样式表嵌入在我的 HTML 中的标签内。当我尝试使用 XSLTProcessor 转换 XML 时,结果为 null。当我从标记访问 XSLT 时会出现此问题,但当我在 JavaScript 代码中直接将 XSLT 指定为字符串时不会出现此问题。
html:
<script id="xslt-code" type="text/xsl"> <!-- XSLT content here --> </script>
js:
async function fetchXMLAndApplyXSLT() {
// Fetch XML data...
const xsltCode = document.getElementById("xslt-code").textContent;
const xslParser = new DOMParser();
const xslStylesheet = xslParser.parseFromString(xsltCode, 'text/xml');
const xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xslStylesheet);
const transformedXML = xsltProcessor.transformToFragment(xmlDoc, document);
if (!transformedXML) {
console.error('Transformation resulted in null');
}
// Further processing...
}
尝试的解决方案:
尽管做出了这些努力,transformedXML 仍然为空。在 JavaScript 中直接将 XSLT 指定为字符串可以正常工作,但从标记中获取它则不行。
任何人都可以建议可能导致此问题的原因或如何解决它吗?
删除
<script ...>
和 <?xml version="1.0" encoding="UTF-8"?>
之间的换行符修复了我的错误