【问题标题】:XSLT empty tags are not included in outputXSLT 空标签不包含在输出中
【发布时间】:2014-09-19 09:38:58
【问题描述】:

我正在将 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>

输出没有对应空的entry 标记的td 标记。 这个问题有解决办法吗?

【问题讨论】:

标签: xml xslt xml-parsing


【解决方案1】:

因为你有namespaces。在您的示例 XML 中,您有 calsce。此外,您的 xpath 中的大小写不正确。

改变

<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">

【讨论】:

  • 我在使用 Java 解析 xml 时删除了命名空间。事实并非如此。
  • 即使您在 Java 中删除了命名空间,输入 XML 中的大小写和样式表 sn-p 也不会匹配。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
相关资源
最近更新 更多