【问题标题】:Check for a value in XML in Oracle BI Publisher 11g在 Oracle BI Publisher 11g 中检查 XML 中的值
【发布时间】:2014-10-29 22:23:07
【问题描述】:

以下是我的 xml 示例。这就是我想要的

  1. 遍历所有汽车
  2. 如果汽车具有“运动”风格,则显示它们,否则,忽略它

所以在下面的示例中,我将显示 Ferrari 以及 Convertible 和 Sport 的 2 个值

我有<for-each>Car</end-for-each>。我想检查一辆车是否具有“运动”风格。我怎么做?我必须在<for-each>Car</end-for-each> 中再添加一个<for-each>Style</end-for-each> 吗?如果我找到了一种运动风格,那么我将初始化一个变量并分配它,例如

<?xdoxslt:set_variable($_XDOCTX, ’car’, 1)?> --- initialize to 1 if Sport style found
<?xdoxslt:get_variable($_XDOCTX, ’car’)?> --- retrieve

<Car>
<Brand>Honda</Brand>
<Style>Coupe</Style>
<Style>Sedan</Style>
</Car>
<Car>
<Brand>Ferrari</Brand>
<Style>Convertible</Style>
<Style>Sport</Style>
</Car>

【问题讨论】:

    标签: xml oracle xslt bi-publisher


    【解决方案1】:

    这就是我想要的

    1. 循环遍历所有汽车
    2. 如果汽车具有“运动”风格,则显示它们,否则,忽略它

    通常,在 XSLT 中,您会这样处理这个问题:

    1. 选择所有具有“运动”风格的汽车;
    2. 显示它们。

    例如:

    <xsl:for-each select="Car[Style='Sport']">
        <!-- whatever "display" means -->
    </xsl:for-each>
    

    或者,如果“显示”是所有节点的默认设置(例如,如果您正在应用身份转换模板),您可以应用一个空模板来匹配所有不 具有“运动”风格,以压制它们。

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 2022-09-28
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多