【发布时间】:2014-01-09 21:14:09
【问题描述】:
我需要解析一个日志文件并将其转换为 XML/Excel 文件。日志文件具有以下格式的记录数据:
Key_ID Property1 Property2 Property3
Row1 value1iiii value3
Property4
value4
Key_ID Property1 Property2 Property3
Row2 value1 value3
Property4
value4
目前我正在尝试在 Java 中执行此操作,我需要 XML 转换以进行比较,而 Excel 用于导出(我将使用 Apache POI 库)。问题是元素之间的可变间距,有时值可能是空白的。目前我正在读取两行并将它们存储到一个字符串中并尝试扫描仪,但这会错过空白值并因此解析相应属性的错误值。即使使用正则表达式,也会出现同样的问题。
感谢您的宝贵建议。我保留的数据仅供参考,我的意思是列数不同,有时会有空白值。我已经浏览了近 50 个这样的日志文件,我能发现的共同点是,它打印日志文件就像我们从数据库/Excel 表中复制和粘贴数据一样。我能想到的唯一解决方案是逐个字符地分析一行。 对不起,伙计们,我无法立即回复,我的宽带连接中断了。再次感谢您抽出宝贵时间。
【问题讨论】:
-
Property2 的值是否一直为空? Property4 总是换行吗?
-
列是否有可能是 10 个字符的固定大小,或者每列都有自己的大小?
-
不确定是否符合格式!属性是否可以包含空格?是否可以假设它们总是至少从列标签“下方”开始。
-
哦,并且是整个文件中的标题行不变。例如。你能有 Key_ID Property2 Property4 .. Property21
-
列数是随机的。有时这些值可能是空白的。我已经给出了标题以供参考。