【发布时间】:2010-09-15 08:20:36
【问题描述】:
我对 XSL 很陌生,但遇到了一些问题。
我使用的 XML 有一些标签,例如 <Example/>。
在我的 XSL(输出是 HTML)中,我对没有数据的标签使用了类似的东西:
<xsl:if test="count(ContractNr) > 0">
<td>Nr:</td>
<td><xsl:value-of select="ContractNr"/></td>
</xsl:if>
没有标签的时候效果很好。
但是如何为<ContractNumber/> 之类的东西创建<xsl:if>?
Ty,对不起我的英语。
更新:编辑了我的 1 篇文章,抱歉.. 我的意思是当我测试的标签在 xml 中不存在时,我的示例有效,但我如何测试标签是否为“空” " 喜欢或
ty,Treemonkey,但我不确定这是否是我正在寻找的解决方案。
我会尽量解释得更好。
在 xml 输入文件中有许多标签是“可选”或“minOccurs="0"”(根据模式)。使用 xsl 我尝试使用一个表格制作一个 html 输出,在该表格中我使用<xsl:if> 来确定标记是否存在于 xml 中(无标记=无列)。
我为我的 html 表格列提供静态名称(xml 中的数据不能用于命名)并将 xml 中的数据放在那里。现在,当标签为 <smthng/> 时,我仍然得到具有给定静态名称的列 - 这就是问题所在。我想创建一个xsl:if,这样如果有<smthng/>,则不会创建该列:
<table>
<tr><xsl:if ...>
<td>Some name:</td>
<td><xsl:value-of select="smthng"/></td></xsl:if>
</tr>
</table>
【问题讨论】:
-
查看我的回答,了解 XSLT 最佳实践解决方案。不明白的请追问。另外,永远不要回答你自己的问题 - 只需编辑它。
标签: xslt