草庐IT

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

coder 2024-07-03 原文

我对 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/

有关xml - XSLT:如果值存在,添加逗号的更多相关文章

  1. ruby - 我需要将 Bundler 本身添加到 Gemfile 中吗? - 2

    当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/

  2. ruby - 用逗号、双引号和编码解析 csv - 2

    我正在使用ruby​​1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\

  3. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

  4. ruby-on-rails - 如果为空或不验证数值,则使属性默认为 0 - 2

    我希望我的UserPrice模型的属性在它们为空或不验证数值时默认为0。这些属性是tax_rate、shipping_cost和price。classCreateUserPrices8,:scale=>2t.decimal:tax_rate,:precision=>8,:scale=>2t.decimal:shipping_cost,:precision=>8,:scale=>2endendend起初,我将所有3列的:default=>0放在表格中,但我不想要这样,因为它已经填充了字段,我想使用占位符。这是我的UserPrice模型:classUserPrice回答before_val

  5. ruby - 将 Bootstrap Less 添加到 Sinatra - 2

    我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它

  6. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  7. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  8. ruby - 如果指定键的值在数组中相同,如何合并哈希 - 2

    我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat

  9. ruby-on-rails - 如果我将 ruby​​ 版本 2.5.1 与 rails 版本 2.3.18 一起使用会怎样? - 2

    如果我使用ruby​​版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby​​1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更

  10. ruby - 可以通过多少种方法将方法添加到 ruby​​ 对象? - 2

    当谈到运行时自省(introspection)和动态代码生成时,我认为ruby​​没有任何竞争对手,可能除了一些lisp方言。前几天,我正在做一些代码练习来探索ruby​​的动态功能,我开始想知道如何向现有对象添加方法。以下是我能想到的3种方法:obj=Object.new#addamethoddirectlydefobj.new_method...end#addamethodindirectlywiththesingletonclassclass这只是冰山一角,因为我还没有探索instance_eval、module_eval和define_method的各种组合。是否有在线/离线资

随机推荐