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

如何用Talend路由/Camel筛选XML指定值节点并保留为单条消息

在Talend路由中筛选XML节点并保留单条消息结果

方法一:使用tXMLMap组件

  • 把tXMLMap组件拖进你的Talend路由,将待处理的XML消息接入组件的输入端口
  • 打开tXMLMap的映射编辑器,加载示例XML自动生成输入结构
  • 搭建输出XML结构,和输入的<root>完全一致,包含<occ>子节点
  • 给<occ>节点设置过滤规则:row1.type.equals("T1")(row1为输入端口默认命名,可根据实际调整)
  • 将符合条件的<occ>节点映射到输出的<root>节点下,确保所有匹配节点批量保留,不会拆分成多条消息
  • 把tXMLMap的输出端口连到后续组件,即可得到仅含T1类型<occ>节点的完整XML

方法二:使用tXSLT组件(适配复杂XML转换场景)

  • 在路由中添加tXSLT组件,接入输入XML消息
  • 编写如下XSLT样式表实现精准筛选:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/root">
    <root>
      <!-- 仅复制type值为T1的occ节点 -->
      <xsl:copy-of select="occ[type='T1']"/>
    </root>
  </xsl:template>
</xsl:stylesheet>
  • 将该XSLT文件配置到tXSLT组件的样式表路径中
  • 运行路由后,tXSLT会直接输出保留符合条件节点的完整XML消息,全程保持单条消息格式

验证结果

以你提供的输入XML为例,两种方法都会输出:

<root>
<occ>
<name>A</name>
<type>T1</type>
</occ>
<occ>
<name>B</name>
<type>T1</type>
</occ>
</root>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:42:37