You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过OIC映射将元素标签转换为键值对格式?

问题描述

输入负载格式如下:

<Marks>
<Math>87</Math>
<Science>92</Science>
<History>85</History>
</Marks>

能否使用OIC映射将其转换为以下格式?恳请提供可行解决方案:

<Marks>
 <Subject>Math</Subject>
 <Value>87</Value>
</Marks>
<Marks>
 <Subject>Science</Subject>
 <Value>92</Value>
</Marks>
<Marks>
 <Subject>History</Subject>
 <Value>85</Value>
</Marks>

可行解决方案

方案一:OIC可视化映射实现

  1. 先将源XML和目标XML的Schema导入OIC集成项目,明确源结构为单<Marks>节点下包含多个科目子节点,目标结构为重复的<Marks>节点(每个含<Subject>和<Value>)。
  2. 打开映射编辑器,选中源<Marks>节点下的所有子节点,添加For Each组件循环遍历这些科目节点。
  3. 循环内部映射:
    • 用OIC内置的local-name()函数获取当前循环节点的名称,映射到目标<Subject>字段。
    • 将当前循环节点的文本值直接映射到目标<Value>字段。
  4. 保存映射后测试,即可生成目标格式的多<Marks>节点输出。

方案二:自定义XSLT片段实现

如果可视化映射无法满足需求,可直接插入XSLT片段完成转换:

<xsl:template match="/">
  <xsl:for-each select="Marks/*">
    <Marks>
      <Subject><xsl:value-of select="local-name()"/></Subject>
      <Value><xsl:value-of select="."/></Value>
    </Marks>
  </xsl:for-each>
</xsl:template>

操作步骤:

  1. 在OIC映射编辑器工具栏点击XSLT片段按钮。
  2. 将上述代码粘贴到片段编辑器,替换默认模板内容。
  3. 保存映射并测试,即可得到符合要求的输出。

内容的提问来源于stack exchange,提问作者SasiS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 09:24:57