在foreach语句中导致问题的XSLT命名空间

时间:2018-02-27 00:40:06

标签: xml xslt

我已经看过几个关于这个问题的不同stackoverflow答案,但由于我是这个转换主题的新手,我觉得我犯了一个我根本看不到的明显错误。

这是我的xml

<application xmlns:os="http://url..." name="test">

<catalog>
  <cd>
    <title> Empire Burlesque </title>
    <artist> Bob Dylan </artist>
    <country> USA </country>
    <company> Columnbia </company>
  </cd>
</catalog>

</application>

这是我的xsl

<?xml version="1.0" encoding="UFT-8"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:os="http://url...">
<xsl:output method="html" version="1.0" encoding=ISO-8859-1" indent="yes"/>


<xsl:template match="application">

<html>
<body>
  <h2>
    <th style="text-align:left">Title</th>
    <th style="text-align:left">Artist</th>
  </h2>

  <!-- this doesn't work -->
  <xsl:for-each select="os:catalog/cd">
    <h2><xsl:value-of select="title"></h2>
    <h2><xsl:value-of select="artist"></h2>
  </xsl:for-each>

</body>
</html>
</xsl:template>
</xsl:stylesheet>

目前的输出是:

标题艺术家

但我希望输出为:

标题艺术家

Empire Burlesque Bob Dylan

我不确定错误是什么。我尝试将模板设置为/,但似乎无效

0 个答案:

没有答案