我正在做一个项目来分析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>
现在,有两个根元素,或者说没有,正如您所希望看到的那样。如何继续查询这样的文件?
提前多谢了。
1条答案
按热度按时间iyfamqjs1#
正如@glenatron指出的那样,这不是一个格式良好的xml文档。如果要将其作为xml处理,这里只有两个选项:
1) 将元素 Package 在根元素中以创建格式良好的文档
2) 将该文件分解为许多小xml文档。
我不确定您有什么可用的工具,但是如果我是从java读取它的话,我可能会创建一个自定义的子类inputstream或reader,用一个开始元素(在文档声明之后)动态地为它添加前缀,用一个结束元素添加后缀。这样,我就可以将这个流/读取器提供给任何xmldom/sax解析器或xpath/xquery引擎,它将把它当作一个有效的xml文档。