输出中不包含XSLT空标记

时间:2014-07-28 08:29:51

标签: xml xslt xml-parsing

我正在将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个标记。 有没有解决这个问题的方法?

1 个答案:

答案 0 :(得分:0)

这是因为你有namespaces。在您的示例XML中,您有calsce。你的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">