XSLT 解析以获取特定结构

时间:2021-01-07 04:27:29

标签: html xml xslt

我是 XSLT 的新手。我正在尝试解析以下 XML 并提取每个 <row> 元素的值。 <row> 下可以有任意数量的子 <row> 元素,但我将在 <row> 下拥有字段的名称。有没有办法使用 XSLT 在表格中循环和打印它?任何指针都会非常有帮助。

<root>
  <dq>    
    <row>
      <rowa>Test 1</rowa>
      <rowb>Test 2</rowb>
    </row>  
    <row>
      <rowa>Test 21</rowa>
      <rowb>Test 22</rowb>
    </row>
   </dq> 
</root>

我正在尝试获取一个 HTML 表格,它将呈现为:

Test 1 
Test 2
Test 21 
Test 22

1 个答案:

答案 0 :(得分:0)

正如你所说:

<块引用>

任何指针都会非常有帮助

这个最小的 XSLT 样式表可以帮助您入门:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    exclude-result-prefixes="xs" version="2.0">
  <xsl:output method="html" encoding="UTF-8" indent="yes"/>
  <xsl:template match="/">
    <table>
        <xsl:apply-templates select="/root/dq"/>
    </table>
  </xsl:template>
  <xsl:template match="row">
    <tr>
      <xsl:apply-templates/>
    </tr>
  </xsl:template>
  <xsl:template match="row/child::*">
    <td>
      <xsl:apply-templates/>
    </td>
  </xsl:template>
</xsl:stylesheet>

它将产生以下 HTML 表格结构

<table>     
  <tr>  
    <td>Test 1</td>
    <td>Test 2</td>
  </tr>   
  <tr>      
    <td>Test 21</td>      
    <td>Test 22</td>
  </tr>
</table>
相关问题