【问题标题】:Assigning dynamic value to attribute in xslt file为 xslt 文件中的属性分配动态值
【发布时间】:2015-07-20 16:34:00
【问题描述】:

我们正在努力集成其中一个服务器,其中目标服务器需要以下格式的输入负载。在这种情况下,我们必须传递几个参数,并且其中一个是动态的。 正如下面有效负载中突出显示的,对于属性 storeID,我们需要传递一个应该来自转换的值。我没有看到可以在 SOA 11g 中进行转换的选项

注意:- 我在 BPEL 中创建了一个变量,并且需要在此处传递相同的变量。

有人可以帮忙吗?

<modifyRequest dn="storeID=123456780,ou=store,o=xxxx.com">
 <modification name="TelephoneNo" operation="replace">
      <value>1231231230</value>
 </modification>

这就是我的 xslt 文件的样子:-

<ns6:modifyRequest>
    <xsl:attribute name="dn">
      <xsl:text disable-output-escaping="no">storeID=123456780,ou=sites,o=xxxx.com</xsl:text>
    </xsl:attribute>
    <ns6:modification>
      <xsl:attribute name="name">
        <xsl:text disable-output-escaping="no">TelephoneNo</xsl:text>
      </xsl:attribute>
      <xsl:attribute name="operation">
        <xsl:text disable-output-escaping="no">replace</xsl:text>
      </xsl:attribute>
      <ns6:value>
        <xsl:text disable-output-escaping="no">1212121212</xsl:text>
      </ns6:value>
     </ns6:modification>
  </ns6:modifyRequest>

【问题讨论】:

  • 与你的问题无关,但我强烈建议不要使用 disable-output-escaping,除非你真的别无选择。除了不是每个 XSLT 处理器都支持之外,在这种情况下它是完全没有必要的,甚至可能导致生成的 XML 中出现错误,具体取决于您输出的文本。

标签: xslt soa jdeveloper bpel


【解决方案1】:

除了使用xsl:text 输出固定(常量)文本外,您还可以使用xsl:value-of 输出对XPath 表达式求值的文本。

您可以简单地将xsl:textxsl:value-of 交错。例如,假设您有一个名为 storeID 的变量:

<xsl:text>storeID=</xsl:text>
<xsl:value-of select="$storeID"/>
<xsl:text>,ou=sites,o=xxxx.com</xsl:text>

或者,或者,查看用于连接字符串的concat XPath 函数。

<xsl:value-of select="concat('storeID=', $storeID, ',ou=sites,o=xxxx.com')"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2012-07-08
    相关资源
    最近更新 更多