如何使用xsl创建表

时间:2013-11-07 08:21:47

标签: xml xslt xslt-1.0

我是XSL和XML的新手。我试图创建一个包含可以生成html文件的Name和ID的表,但是当我尝试运行它时没有输出。

这是我的xml代码:

  <Column Description="POS Name"/>

  <Column Description="POS ID"/>

</Columns>

<Row>

  <POS Name>Mall 1</POS Name>

  <POS ID>00001</POS ID>

</Row>

<Row>

  <POS Name>Mall 2</POS Name>

  <POS ID>00002</POS ID>

</Row>

<Row>
  <POS Name>Mall 3</POS Name>

  <POS ID>00003</POS ID>

</Row>

这是我的xsl代码:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://homecredit.net/homerselect/ws/incomingPayments/dto" version="1.0">
   <xsl:output method="html" indent="yes" standalone="yes" />
   <xsl:template match="/">
      <xsl:element name="POS">
         <xsl:attribute name="lang">en</xsl:attribute>
         <xsl:element name="head">
            <xsl:element name="title">POS</xsl:element>
         </xsl:element>
         <xsl:element name="table">
            <xsl:attribute name="border">1</xsl:attribute>
            <xsl:element name="tr">
               <xsl:element name="th">POS NAME</xsl:element>
               <xsl:element name="th">POS ID</xsl:element>
            </xsl:element>
            <xsl:element name="tr">
               <xsl:element name="td">Mall</xsl:element>
               <xsl:element name="td">00001</xsl:element>
            </xsl:element>
            <xsl:element name="tr">
               <xsl:element name="td">Mall 2</xsl:element>
               <xsl:element name="td">00002</xsl:element>
            </xsl:element>
            <xsl:element name="tr">
               <xsl:element name="td">Mall 3</xsl:element>
               <xsl:element name="td">00003</xsl:element>
            </xsl:element>
         </xsl:element>
      </xsl:element>
   </xsl:template>
</xsl:stylesheet>

我需要的最终输出就像这样

POS Name                 POS ID
Mall                     00001
Mall 2                   00002
Mall 3                   00003

1 个答案:

答案 0 :(得分:2)

请参阅http://zvon.org/xxl/XSLTutorial/Output/

XSLT用于将一个XML文档转换为另一个XML文档。为此,它匹配输入的部分并将所选部分发送到输出,如果需要,对它们进行操作。

如果您没有输入,请使用包含<dummy/>的虚拟文件和以下xslt作为初学者: -

<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:template match="/">
        <head>
        <title>POS</title>
        </head>
        <table>
        </table>
    </xsl:template>
</xsl:stylesheet>

在我的基于unix的系统上,这给出了: -

% xsltproc test.xslt in.xml 
<?xml version="1.0"?>
<head><title>POS</title></head><table/>