【问题标题】:How to convert &lt;br&gt; to <br> in xslt/xquery如何在 xslt/xquery 中将 <br> 转换为 <br>
【发布时间】:2020-10-23 11:25:16
【问题描述】:

我收到了这个请求

<description>V1&lt;br&gt;V2&lt;br&gt;V3</description>

我需要将其转换为以下代码并将其发送到目标系统:

V1<br>V2<br>V3

如何在 xslt/query 中转换它?

【问题讨论】:

  • 简单选择&lt;description&gt; 的文本会将&amp;lt; 和&amp;gt; 转换回&lt; 和&gt;。输出 text/plain,而不是 text/xml.

标签: java xslt xquery soa osb


【解决方案1】:

您实际上不需要进行任何转换。 &lt;description&gt; 元素的字符串值是字符串V1&lt;br&gt;V2&lt;br&gt;V3。您唯一的问题是避免将其转换为其他内容,例如,如果您尝试使用 XML 序列化方法输出它,就会发生这种情况。

所以这有点取决于“将其发送到目标系统”的含义。

对于 XSLT,您通常希望使用文本输出方法输出结果。

使用 XQuery,向调用应用程序返回字符串的查询将做正确的事情。

【讨论】:

  • 目标系统/第 3 方需要像这样 V1
    V2
    V3 的描述,他们不理解这种格式 V1<br>V2<br>V3 是 OSB 发送的,根据你的评论,它将按预期格式自动采用 V1
    V2
    V3 否则需要在 OSB 端发送给他们之前进行任何转换
【解决方案2】:

使用disable-output-escaping="yes",如下所示

<xsl:value-of select="." disable-output-escaping="yes"/>

【讨论】:

  • 对问题进行了编辑,以便重新出现原始 XML 标记。你可能会重新考虑你的答案——不是你的错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-16
  • 2011-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 1970-01-01
相关资源
最近更新 更多