为什么这个XSLT没有为XML值返回任何内容?

时间:2012-11-02 07:12:40

标签: xml xslt xsd

将XSLT应用到XML之后,我想显示XML中的项目名称和描述,我只显示表格标题,似乎XML中的名称和描述没有被提取,有谁知道为什么?与“tns:”命名空间有什么关系?谢谢!

这是XML

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="./LittleStore.xsl"?>
<tns:store xmlns:tns="http://www.example.org/LittleStore/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/LittleStore/ LittleStore.xsd ">

  <tns:item>

    <name>Warm Hat</name>
    <description>This hat is warm and will mike you stand out from the crowd.</description>

  </tns:item>

  <tns:manufacturer>
    <manu_id>4234</manu_id>
    <name>Toy Co.</name>
  </tns:manufacturer>

</tns:store>

这是XSLT:

<?xml version="1.0" encoding="UTF-8"?>

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

<xsl:template match="/">
  <html>
  <body>
  <h2>Store Catalog</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Item Name</th>
      <th>Description</th>
    </tr>
    <xsl:for-each select="store/item">
    <tr>
      <td><xsl:value-of select="name"/></td>
      <td><xsl:value-of select="description"/></td>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet> 

1 个答案:

答案 0 :(得分:0)

解决方案:我添加了tns:store / tns:item。

顺便说一下,如果我添加tns:name或tns:description,它实际上为表提供了空单元格。