如何将表格从 XML 匹配到 XSL

问题描述 投票:0回答:1

我想用正确的 XMl 标签填充表格...我已经用标签编写了代码,但不知何故,当我获取 XML 和 XSl 然后将其转换为 HTML 时,它没有用数据填充表格...我相信我缺少一个参数来调用表(如表 ID)

我很感谢您的任何意见:)

代码如下: XSL代码

<div class="table">
   <table border="1">
       <h3>NLS Alert details</h3>
           <tr>
             <th>NLS "Record ID"</th>
             <th>Name</th>
             <th>NLS Alert Description</th>
             <th>AML DD Comments</th>
             <th>AFC Comments</th>
           </tr>
    <xsl:for-each select="NewDataSet/_x0039_c07da72-63fc-45fe-9ab7-4c787b1e6984">
<xsl:if test="normalize-space(AMLNLSRecordID) or normalize-space(AMLNLSAlertName) or normalize-space(AMLNLSAlertDescription) or normalize-space(AMLDDAFCComments) or normalize-space(AMLAFCComments)">
                            
    <tr>
       <td>
       <xsl:value-of select="AMLNLSRecordID"/>
       </td>
           <td>
       <xsl:value-of select="AMLNLSAlertName"/>
       </td>
       <td>
       <xsl:value-of select="AMLNLSAlertDescription"/>
       </td>
       <td>
       <xsl:value-of select="AMLDDAFCComments"/>
       </td>
       <td>
           <xsl:value-of select="AMLAFCComments"/>
       </td>
       </tr>
</xsl:if>
</xsl:for-each>
          </table>
           </div>
</div>

XML 代码

<Table TableId="NLSAlertDetailsTable">
    <TableRow RowNumber="1">
      <AMLNLSRecordID>1</AMLNLSRecordID>
      <AMLNLSAlertName>Name 1 Surname 1</AMLNLSAlertName>
      <AMLNLSAlertDescription>1</AMLNLSAlertDescription>
      <AMLDDAFCComments>1</AMLDDAFCComments>
      <AMLAFCComments>Test</AMLAFCComments>
    </TableRow>
    <TableRow RowNumber="2">
      <AMLNLSRecordID>2</AMLNLSRecordID>
      <AMLNLSAlertName>Name 2 Surname 2</AMLNLSAlertName>
      <AMLNLSAlertDescription>2</AMLNLSAlertDescription>
      <AMLDDAFCComments>2</AMLDDAFCComments>
      <AMLAFCComments>Test 1</AMLAFCComments>
    </TableRow>
    <TableRow RowNumber="3">
      <AMLNLSRecordID>3</AMLNLSRecordID>
      <AMLNLSAlertName>Name 3 Surname 3</AMLNLSAlertName>
      <AMLNLSAlertDescription>3</AMLNLSAlertDescription>
      <AMLDDAFCComments>3</AMLDDAFCComments>
      <AMLAFCComments>Test 2</AMLAFCComments>
    </TableRow>
    <TableRow RowNumber="4">
      <AMLNLSRecordID>4</AMLNLSRecordID>
      <AMLNLSAlertName>Name 4 Surname 4</AMLNLSAlertName>
      <AMLNLSAlertDescription>4</AMLNLSAlertDescription>
      <AMLDDAFCComments>4</AMLDDAFCComments>
      <AMLAFCComments>Test 3</AMLAFCComments>
    </TableRow>
  </Table>

问题如上

html xml xslt
1个回答
0
投票

我刚刚调整了你的.xsl

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output encoding="utf-8" method="html" indent="yes"/>
    <xsl:template match="/">
        <head>
            <style>
            </style>
        </head>
        <body>
            <div class="table">
                <table border="1">
                    <h3>NLS Alert details</h3>
                    <tr>
                        <th>NLS "Record ID"</th>
                        <th>Name</th>
                        <th>NLS Alert Description</th>
                        <th>AML DD Comments</th>
                        <th>AFC Comments</th>
                    </tr>
                    <xsl:for-each select="Table/TableRow">
                            <tr>
                                <td>
                                    <xsl:value-of select="AMLNLSRecordID"/>
                                </td>
                                <td>
                                    <xsl:value-of select="AMLNLSAlertName"/>
                                </td>
                                <td>
                                    <xsl:value-of select="AMLNLSAlertDescription"/>
                                </td>
                                <td>
                                    <xsl:value-of select="AMLDDAFCComments"/>
                                </td>
                                <td>
                                    <xsl:value-of select="AMLAFCComments"/>
                                </td>
                            </tr>
                    </xsl:for-each>
                </table>
            </div>
            <script>
</script>
        </body>
    </xsl:template>
</xsl:stylesheet>

它产生了这个结果;

这是您正在寻找的结果吗? --我删除了逻辑测试来检查节点是否有值,除非您期望源 xml 中为 NULL?

© www.soinside.com 2019 - 2024. All rights reserved.