使用猪拉丁语的XMLloader

时间:2015-04-15 06:26:16

标签: regex xml apache-pig

<user>

<ids>
<id>
456
</id>
<id>
123
</id>
</ids>

<username>
Taylor
</username>
</user>

上面的一个成功运行,但存储了0个记录

请帮我这个

1 个答案:

答案 0 :(得分:0)

您需要为singleline添加.模式选项以匹配换行符,或[\\s\\S]*解决此问题:

B = foreach A GENERATE FLATTEN(REGEX_EXTRACT_ALL(x, '<user>\\n\\s*<id>([\\s\\S]*)</id>\\n\\s*<username>([\\s\\S]*)</username>\\n\\s*</user>')) 

甚至省略\n,因为\s已经抓住了它:

B = foreach A GENERATE FLATTEN(REGEX_EXTRACT_ALL(x, '<user>\\s*<id>([\\s\\S]*)</id>\\s*<username>([\\s\\S]*)</username>\\s*</user>'))