如何将 xml-样式表声明添加到已解析的 XML?
How to add xml-stylesheet declaration to parsed XML?
我有 XML 文档被解析为 DOM 对象,如下所示:
const contentDoc = new DOMParser().parseFromString(data, "text/xml");
我如何add/prepend 遵循 xml-stylesheet 指令?
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
我想使用 XSLT 样式表(也为我提供)可视化提供的 XML 文件,我不想玩字符串(我可能只是在XML 变成 DOM) 但我想正确地做到这一点。
您需要使用 XSLTProcessor() 方法导入样式表。
导入 XSL 后,使用 "transformToFragment()" 或 "transformToFragment()" 将 xml 转换为片段以转换使用您的 XSL 文档。
毕竟,您只需将转换后的 fragment/document 添加到您想要的元素中即可。
Refer to this example on MDN
Also this can help you understand the use of transformation
我复制了他们的例子,并且根据您的需要正常工作,这可以解决您的要求。
他们是这样做的:
function Init(){
// load the xslt file, example1.xsl
var myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open("GET", "example1.xsl", false);
myXMLHTTPRequest.send(null);
xslStylesheet = myXMLHTTPRequest.responseXML;
xsltProcessor.importStylesheet(xslStylesheet);
// load the XML file, example1.xml
myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open("GET", "example1.xml", false);
myXMLHTTPRequest.send(null);
xmlDoc = myXMLHTTPRequest.responseXML;
var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
document.getElementById("example").textContent = "";
myDOM = fragment;
document.getElementById("example").appendChild(fragment);
}
Init();
我有 XML 文档被解析为 DOM 对象,如下所示:
const contentDoc = new DOMParser().parseFromString(data, "text/xml");
我如何add/prepend 遵循 xml-stylesheet 指令?
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
我想使用 XSLT 样式表(也为我提供)可视化提供的 XML 文件,我不想玩字符串(我可能只是在XML 变成 DOM) 但我想正确地做到这一点。
您需要使用 XSLTProcessor() 方法导入样式表。 导入 XSL 后,使用 "transformToFragment()" 或 "transformToFragment()" 将 xml 转换为片段以转换使用您的 XSL 文档。
毕竟,您只需将转换后的 fragment/document 添加到您想要的元素中即可。
Refer to this example on MDN Also this can help you understand the use of transformation
我复制了他们的例子,并且根据您的需要正常工作,这可以解决您的要求。
他们是这样做的:
function Init(){
// load the xslt file, example1.xsl
var myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open("GET", "example1.xsl", false);
myXMLHTTPRequest.send(null);
xslStylesheet = myXMLHTTPRequest.responseXML;
xsltProcessor.importStylesheet(xslStylesheet);
// load the XML file, example1.xml
myXMLHTTPRequest = new XMLHttpRequest();
myXMLHTTPRequest.open("GET", "example1.xml", false);
myXMLHTTPRequest.send(null);
xmlDoc = myXMLHTTPRequest.responseXML;
var fragment = xsltProcessor.transformToFragment(xmlDoc, document);
document.getElementById("example").textContent = "";
myDOM = fragment;
document.getElementById("example").appendChild(fragment);
}
Init();