xml - XSLT:如果值存在,添加逗号

标签 xml xslt

我对 XML 和 XSLT 还很陌生。我有一个家庭作业要求我们根据一些 XML 数据生成一个页面。它非常简单,所以这里是:

我的 XML 数据如下所示:

<convention>
    <title>ABC Web Development Conference</title>
    <location>ABC College, San Diego, CA</location>
    <date> March 25, 2011 - March 27, 2011</date>
    <exhibitor>
        <name>John Smith</name>
        <address1>1234 2nd Avenue</address1>
        <address2></address2>
        <city>San Diego</city>
        <state>CA</state>
        <email>john@john.com</email>
        <specialization>
            <subject>Web Development</subject>
            <subject>Software Design</subject>
        </specialization>
    </exhibitor>
        <exhibitor>
        <name>Jane Smith</name>
        <address1>1234 First Avenue</address1>
        <address2>Ste 123</address2>
        <city>San Diego</city>
        <state>CA</state>
        <email>jane@jane.com</email>
        <specialization>
            <subject>Web Development</subject>
        </specialization>
    </exhibitor>
</convention>

基本上,我已将其设置为很好地输出到表格中。当我输出地址 2 时,我的问题出现了。我想这样做,如果地址 2 的字符串长度大于 0,则输出一个逗号。

这是我的 XSL 数据的样子:

<table width="600" border="1" cellspacing="3" cellpadding="5">
  <tr>
    <td colspan="3" align="center"><xsl:value-of select="convention/title"/></td>
  </tr>
  <tr>
    <td colspan="3" align="center"><xsl:value-of select="convention/location"/></td>
  </tr>
  <tr>
    <td colspan="3" align="center"><xsl:value-of select="convention/date"/></td>
  </tr>
  <tr>
    <th>Exhibitor</th>
    <th>Address</th>
    <th>Specialization</th>
  </tr>
    <xsl:for-each select="convention/exhibitor">
    <tr>
      <td><xsl:value-of select="name"/><br /><xsl:value-of select="email"/></td>
      <td><xsl:value-of select="address1"/>, <xsl:value-of select="address2"/>&nbsp;<xsl:value-of select="city"/>, <xsl:value-of select="state"/></td>
      <td><xsl:for-each select="specialization/subject"><xsl:value-of select="."/><br /></xsl:for-each></td>
    </tr>
    </xsl:for-each>
  <tr>
    <td colspan="3">Total Number of Exhibitors: <xsl:value-of select="count(convention/exhibitor)"/></td>
  </tr>
</table>

非常感谢任何帮助:)

最佳答案

你有课本吗?我会给你一些提示,帮助你找到你需要的信息:

如果您不熟悉这些概念,我建议您从您的类(class) Material 中查看更多信息。

祝你好运!

关于xml - XSLT:如果值存在,添加逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275202/

相关文章:

XSLT:将以下标题标签的同级移动到单独的主题中

xml - XSLT或XPath可以处理空文件吗?

xslt - 使用 XSLT 在字符串中添加数字

java - xsd.exe/XMLSerializer 相当于 Java?

xml - 更改 XML 中所有属性的标签名称

java - 与元素类型 "X"关联的属性名称 "Y"必须后跟 ' = ' 字符

xslt - 如何检查祖先是否是其祖先中该类型的最后一个元素

java - 在编码期间忽略元素而不使用 @XmlTransient

java - 从 JAXB 的 XSD 创建 XML 文件

xml - 如何使用 XML 的 XPATH 获取子节点计数