我有以下XML数据:
<?xml version="1.0"?>
<products>
<product>
<ingredient id="1" weighting="1">
<![CDATA[Name of ingredient 1]]>
<blocked_search_terms><![CDATA[Term A, Term B, Term C]]></blocked_search_terms>
</ingredient>
<ingredient id="2" weighting="2">
<![CDATA[Name of ingredient 2]]>
<blocked_search_terms><![CDATA[Term E, Term F]]></blocked_search_terms>
</ingredient>
</product>
</products>
我试图通过Talend中的tXmlMap组件获取所有成分名称的列表。问题是,我得到null
成分名称和被阻止搜索词的串联字符串,例如。
表达式1:
[xml.products:/products/product/ingredient]
结果1: &#34;成分名称1术语A,术语B,术语C,成分名称2术语E,术语F&#34;
表达式2:
[xml.products:/products/product/ingredient/text()]
结果2: &#34; null,null&#34;
我想要达到的结果是: &#34;成分1的名称,成分2的名称和#34;
我需要用什么才能获得它?
答案 0 :(得分:0)
由于您无法直接潜入CDATA(请参阅what xpath to select CDATA content when some childs exist),因此您应能够通过指示您想要的元素来实现您想要的目标:
[xml.products:/products/product/ingredient[1]]