gpt4 book ai didi

xml - 在 PIG 中使用 xpath 提取 XML 中的属性值

转载 作者:数据小太阳 更新时间:2023-10-29 02:07:58 26 4
gpt4 key购买 nike

我有以下输入 XML

<Type>  
<Source>
<TimeStamp>2016-02-19T12:27:06.387Z</TimeStamp>
<IPAddress IPVersion="IPv4">x.xx.xxx.xxx</IPAddress>
<Port>64435</Port>
<DNS_Name>x.xx.xxx.xxx.range9-27.abc.com</DNS_Name>
</Source>
</Type>

我正在尝试使用以下代码从上述标签中检索所有值。

REGISTER piggybank-0.15.0.jar
DEFINE XPath org.apache.pig.piggybank.evaluation.xml.XPath();

A = LOAD 'test.xml' using org.apache.pig.piggybank.storage.XMLLoader('Type') as (x:chararray);
B = FOREACH A GENERATE
XPath(x, 'Source/TimeStamp')
,XPath(x, 'Source/IPAddress')
,XPath(x, 'Source/IPAddress/@IPVersion')
,XPath(x, 'Source/Port')
,XPath(x, 'Source/DNS_Name');

当我转储 B 时,我得到以下输出,其中缺少 IPVersion 的值。

(2016-02-19T12:27:06.387Z,x.xx.xxx.xxx,,64435,x.xx.xxx.xxx.range9-27.abc.com) 

谁能帮我解决这个问题?

最佳答案

piggybank 中有 2 个错误 XPath类:

  1. ignoreNamespace 逻辑中断了对 XML 属性的搜索 https://issues.apache.org/jira/browse/PIG-4751

  2. ignoreNamepace参数默认为true,不能被覆盖 https://issues.apache.org/jira/browse/PIG-4752

查看 XPathAll 的解决方法 here

关于xml - 在 PIG 中使用 xpath 提取 XML 中的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406744/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com