我正在将XML转换为另一种格式。输入XML包括具有空单元格的表。 输入是:
<cals:tbody>
<cals:row>
<ce:entry>
<ce:italic>P. andensis</ce:italic> Vitik.
</ce:entry>
<ce:entry/>
<ce:entry>+</ce:entry>
<ce:entry/>
<ce:entry/>
<ce:entry/>
<ce:entry/>
<ce:entry/>
<ce:entry>+</ce:entry>
<ce:entry/>
<ce:entry/>
<ce:entry/>
<ce:entry/>
<ce:entry align="char" char=".">2</ce:entry>
<ce:entry align="char" char=".">1</ce:entry>
<ce:entry align="char" char=".">1</ce:entry>
</cals:row>
<cals:row>
<ce:entry>
<ce:italic>P. aphthosa</ce:italic> (L.) Willd.
</ce:entry>
<ce:entry>+</ce:entry>
<ce:entry/>
<ce:entry/>
<ce:entry/>
<ce:entry/>
<ce:entry/>
<ce:entry>+</ce:entry>
<ce:entry/>
<ce:entry>+</ce:entry>
<ce:entry>+</ce:entry>
<ce:entry/>
<ce:entry/>
<ce:entry align="char" char=".">41</ce:entry>
<ce:entry align="char" char=".">8</ce:entry>
<ce:entry align="char" char=".">3</ce:entry>
</cals:row>
</cals:tbody>
我的xslt代码是:
<xsl:for-each select="/TBODY/ROW">
<tr>
<xsl:for-each select="./ENTRY">
<xsl:element name="td">
<xsl:value-of select="."></xsl:value-of>
</xsl:element>
</xsl:for-each>
</tr>
</xsl:when>
</xsl:choose>
</xsl:for-each>
输出没有相应空td
标记的entry
个标记。
有没有解决这个问题的方法?
答案 0 :(得分:0)
这是因为你有namespaces
。在您的示例XML中,您有cals
和ce
。你的xpaths中也有不正确的大小写。
变化
<xsl:for-each select="/TBODY/ROW">
到
<xsl:for-each select="/cals:tbody/cals:row">
和
<xsl:for-each select="./ENTRY">
到
<xsl:for-each select="./ce:entry">