XSLTProcessor:transformToFragment() 方法

XSLTProcessor 接口的 transformToFragment() 方法使用与 XSLTProcessor 关联的 XSLT 样式表将提供的 Node 源转换为 DocumentFragment

语法

js
transformToFragment(source, document)

参数

source

要应用 XSLT 样式表的 Node 源。

document

文档片段将与之关联的 Document。(任何文档片段都与可以将其添加到其中的文档相关联)。

返回值

示例

使用 transformToFragment()

此示例演示如何使用 transformToFragment() 将 XML 数据转换为 HTML,然后可以将其作为文档片段直接插入 DOM 中。

HTML

html
<div id="result"></div>

JavaScript

js
const xmlString = `
<books>
  <book>
    <title>Book 1</title>
    <author>Author 1</author>
  </book>
  <book>
    <title>Book 2</title>
    <author>Author 2</author>
  </book>
</books>
`;

const xsltString = `
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html"/>
  <xsl:template match="/">
    <ul>
      <xsl:for-each select="books/book">
        <li>
          <strong><xsl:value-of select="title"/></strong>
          by <em><xsl:value-of select="author"/></em>
        </li>
      </xsl:for-each>
    </ul>
  </xsl:template>
</xsl:stylesheet>
`;

const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, "application/xml");
const xsltDoc = parser.parseFromString(xsltString, "application/xml");

const xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsltDoc);

// Perform the transformation, returning the result as a document fragment
const resultFragment = xsltProcessor.transformToFragment(xmlDoc, document);

// Insert the result into the page
document.getElementById("result").appendChild(resultFragment);

结果

规范

规范
DOM 标准
# dom-xsltprocessor-transformtofragment

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅