【发布时间】:2013-05-29 12:03:23
【问题描述】:
我对 Java 编程比较陌生,正在尝试创建一个可以帮助一些同事的应用程序。
我正在尝试做的背景是,读取一个大文件的内容,最多可能超过 400,000 行,其中包含 XML 但不是有效的 XML 文档,就像它的一种日志一样。
我正在尝试做的是构建一个应用程序,用户在其中输入唯一 ID,然后扫描文档以查找它是否存在,如果存在,并且通常唯一 ID 在生成的 XML 中出现几次,然后我想向后遍历到节点 ID <documentRequestMessage> ,然后将该节点中的所有内容复制到其关闭节点,并将其放入它自己的文档中。
我知道如何创建新文档,但我正在努力找出如何从本质上“向后查找”并将所有内容复制到结束标记,非常感谢任何帮助。
编辑
不幸的是,到目前为止,我还无法弄清楚如何实施这 3 条建议中的任何一条。
correlationId 是前面提到的唯一引用。
我拥有的当前代码,它可以工作并将结果输出到控制台,是
String correlationId = correlationID.getText();
BufferedReader bf = new BufferedReader(new FileReader(f));
System.out.println("Looking for " + correlationId);
int lineCount = 0;
String line;
while ((line = bf.readLine()) != null) {
lineCount++;
int indexFound = line.indexOf(correlationId);
if (indexFound > -1) {
System.out.println("Found CorrelationID on line " + "\t" + lineCount + "\t" + line);
}
}
bf.close();
非常感谢任何进一步的帮助,我不是要求有人为我写,只是一些非常清晰和基本的说明:) 请
编辑 2
可以在here找到我正在尝试读取和提取的文件的副本
【问题讨论】:
-
问题 - 你怎么知道它不是有效的 XML?你能发布一个关于它“无效”的样本吗?
-
@SeanBright 我知道它不是有效的 XML 的原因是因为 1) XMLSpy 不会验证它。 2)它包含多个 (585 个条目)! 3) 另外还有我认为不是正确的 XML cmets 的 cmets,例如 [2013-05-29 12:18:57,626] 默认值:4''# DocumentCompositionLogger sca.component.mediation.java.Custom1322734159344 INFO - requestDocumentProductionPackG02 请求有效负载收到>>>>>> 我已将文件复制到此处,以便您可以查看我正在阅读的整个文档,可以在 here 找到
-
@Gilbert 的建议看起来很简单,你能说说你在实现它时遇到了什么麻烦吗?