Talend tExtractXMLField
我在Talend中有这个工作,应该检索一个字段并循环遍历它。
我的大问题是代码循环遍历XML字段,但它返回null。
以下是XML的示例:
<?xml version="1.0" encoding="ISO-8859-1"?>
<empresas>
<empresa>
<imoveis>
<imovel>
[-- some fields -- ]
<fotos>
<nome id="" order="">photo1</nome>
<nome id="" order=""></nome>
<nome id="" order=""></nome>
<nome id="" order=""></nome>
</fotos>
</imovel>
[ -- other entries here -- ]
</imoveis>
</empresa>
</empresas>
现在使用tExtractXMLField组件我试图获取“fotos”元素。
以下是我在组件中的内容:
我试图更改XPath查询和XPath循环查询,但结果是我不循环遍历字段或我在tMap的值字段中获取null。
这是工作的形象:
你可以看到我从XML中检索了4个项目但是我在“nome”字段中得到的是null。 XPath肯定有问题,但我似乎无法找到问题:(
希望有人可以帮助我。谢谢
注意:我在ubuntu 10.10 64bit上使用talendv4.1.2
没有找到相关结果
已邀请:
5 个回复
究补闯
节点上循环,则必须使用循环XPath查询
和foto_nome XPath查询类似的东西
注意:我还纠正了XML中可能带来问题的错误(
缺少“s”)。
勘掸府迫路
,并通过选中了Get Nodes选项的fotos元素。你的fotos元素的XPath查询应该是
或
。 您的extractXMLField组件看起来配置得很好。 另外,我不知道tSetGlobalVar在你的设计中做了什么,但确保它不会影响你试图通过的fotos元素。
陷牡彭拈峰
骂陋冠
骨乏唯瓜
元素,就像这个“// nome” 在tFileInputXML组件id,顺序和内容中添加3列 获取带有xpath查询的内容列“。” 使用xpath查询“@id”获取id值 使用xpath查询“@order”获取订单值 从XML中提取XML: 这是tExtractXMLField组件的目标: 它允许解析数据库列或其他XML文档中包含的XML数据,就好像它本身就是一个数据流一样。 简而言之,tExtractXMLField从包含XML的列记录创建数据流。 解析soap查询结果时非常有用:服务器回复通常以xml的形式提供,如下所示:
在上面的XML中,arg2>元素包含您可能需要解析的XML文档。 为此目的创建了tExtractXMLField。 我已经写了一篇关于如何实现这项工作的教程,请看这里“如何从xml中提取xml”。它是法语,但屏幕截图可能有助于理解提供的一些评论。 希望它会有所帮助。 最好的祝福,