查询包含多个xml对象的日志文件

pokxtpni  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(357)

我正在做一个项目来分析hadoop中的日志文件。这些文件以xml格式存储元数据。问题是,每个文件存储多个请求,因此在同一个文件中有多个根元素。我无法更改日志文件。有人能帮助您使用配置单元查询文件吗?该文件的一个示例是

<?xml version="1.0" encoding="UTF-8" ?> 
    <book>
       <title>C Proramming </title>
       <price> 120.00 </price>
    </book> 
    <book>
        <title> Java for Dummies </title>
        <price> 400 </price>
    </book>

现在,有两个根元素,或者说没有,正如您所希望看到的那样。如何继续查询这样的文件?
提前多谢了。

iyfamqjs

iyfamqjs1#

正如@glenatron指出的那样,这不是一个格式良好的xml文档。如果要将其作为xml处理,这里只有两个选项:
1) 将元素 Package 在根元素中以创建格式良好的文档
2) 将该文件分解为许多小xml文档。
我不确定您有什么可用的工具,但是如果我是从java读取它的话,我可能会创建一个自定义的子类inputstream或reader,用一个开始元素(在文档声明之后)动态地为它添加前缀,用一个结束元素添加后缀。这样,我就可以将这个流/读取器提供给任何xmldom/sax解析器或xpath/xquery引擎,它将把它当作一个有效的xml文档。

相关问题