XML搜索字符串XPath查询talend

时间:2018-04-09 10:18:35

标签: xml xpath etl talend

我尝试使用tFileInputXML从xml中提取节点。我有的xml结构类似于以下提取:

<catalog>
<article>
<id>10001</id>
<name>AAAAXXXXAAA</name>
<desc>LLLLLL</desc>
</article>
</catalog>

在tFileInputXML中我设置了如下参数,通过id查找特定产品:

enter image description here

问题是我的输出总是0行。你能不能给我一些灯来检查为什么不能正常工作?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我不确定您要尝试实现的目标,但如果您想要具有特定ID(作为xml)的文章节点,请按照以下步骤操作。

我有这个xml作为输入:

<?xml version="1.0" encoding="utf-8"?>
<catalog>
    <article>
        <id>10001</id>
        <name>AAAAXXXXAAA</name>
        <desc>LLLLLL</desc>
    </article>
    <article>
        <id>10002</id>
        <name>ZZZZZZZZZZ</name>
        <desc>description</desc>
    </article>
</catalog>

以下是我如何获取id为10002的文章节点(选中Get nodes选项以获取xml):

enter image description here

enter image description here

修改

如果您正在寻找单个节点,上述工作正常。如果你想搜索多个节点,这里有一个解决方案(注意循环XPath查询现在是/catalog/article):

enter image description here

您也可以使用此表达式self::node()[contains('10001 10002', descendant::id)]