简体   繁体   English

使用 XSL 将 XML 文档转换为 HTML 时出错

[英]Error in transforming XML Document into HTML using XSL

I am transforming an XML document into HTML using XSLT.我正在使用 XSLT 将 XML 文档转换为 HTML。 And i get this error code:我得到这个错误代码:

TypeError: Failed to execute 'serializeToString' on 'XMLSerializer': parameter 1 is not of type 'Node'.
    at AtomXsltransformView.module.exports.AtomXsltransformView.doTransform (file:///C:/Users/X/.atom/packages/atom-xsltransform/lib/atom-xsltransform-view.coffee:86:19)
    at AtomXsltransformView.module.exports.AtomXsltransformView.transform (file:///C:/Users/X/.atom/packages/atom-xsltransform/lib/atom-xsltransform-view.coffee:66:22)
    at HTMLDivElement.atom.commands.add.core:confirm (file:///C:/Users/X/.atom/packages/atom-xsltransform/lib/atom-xsltransform-view.coffee:19:27)
    at CommandRegistry.handleCommandEvent (C:\Users\X\appdata\local\atom\app-1.55.0\resources\app\static\<embedded>:11:350382)
    at KeymapManager.dispatchCommandEvent (C:\Users\X\appdata\local\atom\app-1.55.0\resources\app\static\<embedded>:11:1230982)
    at KeymapManager.handleKeyboardEvent (C:\Users\X\appdata\local\atom\app-1.55.0\resources\app\static\<embedded>:11:1227116)
    at WindowEventHandler.handleDocumentKeyEvent (C:\Users\X\appdata\local\atom\app-1.55.0\resources\app\static\<embedded>:11:284879)

And this is my transform.xsl:这是我的transform.xsl:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <xsl:template match="/">
    <html>
      <head>
        
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous"/>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js" integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" crossorigin="anonymous"></script>
        <title>Food</title>
      </head>
      <body>
        <div>
          <table class="table">

            <tr>
              <th>ID</th>
              <th>Name</th>
              <th>
                Category
              </th>
              <th>Price</th>
            </tr>

            <xsl:for-each select="data/menus/row/">
              <tr>
                <td>
                  <xsl:value-of select="id"/></td>
                <td>
                  <xsl:value-of select="dtype"/></td>
                <td>
                  <xsl:value-of select="name"/></td>
                <td>
                  <xsl:value-of select="category"/></td>
              </tr>

            </xsl:for-each>
          </table>
        </div>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

I read about serializetoString() here: https://developer.mozilla.org/en-US/docs/Web/API/XMLSerializer/serializeToString我在这里阅读了有关 serializetoString() 的信息: https : //developer.mozilla.org/en-US/docs/Web/API/XMLSerializer/serializeToString

They suggest to use this code one: xmlString = anXMLSerializer.serializeToString(rootNode);他们建议使用此代码一: xmlString = anXMLSerializer.serializeToString(rootNode);

I dont know if i have probably to use this proposed code or another one?我不知道我是否可能必须使用这个建议的代码或其他代码? If I have to use this one, how can i implement it in my xsl-sheet.Thanks for helping.如果我必须使用这个,我该如何在我的 xsl-sheet 中实现它。谢谢你的帮助。

您在<xsl:for-each select="data/menus/row/">中的 XSLT 代码有语法错误,尾部斜杠不属于那里,您需要<xsl:for-each select="data/menus/row">

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM