在Pentaho提取XML时,如何在XPATH中添加判断标签是否含<paragraph>的条件?
在Pentaho中使用XPath筛选包含标签的XML元素
针对你提供的XML结构,要在Pentaho里用XPath添加条件来筛选包含<paragraph>标签的节点,其实可以利用XPath的节点存在性检查语法,非常直观:
两种常见场景的XPath写法
筛选直接包含
<paragraph>作为子元素的节点(比如示例里的<td ID="problem30comment">):
用这个XPath表达式://td[paragraph]这个表达式的意思是:选择所有拥有
<paragraph>直接子元素的<td>节点。筛选后代中包含
<paragraph>的节点(比如包含该<td>的<tr>):
如果你的目标是上层节点(比如<tr>),需要检查它的所有后代里是否有<paragraph>,就用://tr[.//paragraph]这里的
.//paragraph表示当前<tr>节点下的任意层级后代中的<paragraph>元素。
在Pentaho中应用的小提示
在Pentaho的XML输入步骤里,把上述XPath作为你的目标节点路径,就能只提取符合条件的节点。比如如果要提取包含<paragraph>的<tr>,就把XPath设为//tr[.//paragraph],这样只会选中第一个<tr>,而跳过没有<paragraph>的第二个<tr>。
内容的提问来源于stack exchange,提问作者Abhishek
相关产品推荐
相关产品推荐

