如何将 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();