【发布时间】:2013-10-25 05:14:37
【问题描述】:
编辑:这些文件已发布到我正在处理的网络服务器上,我现在手头没有它们,只是一个“代表性样本”。
我有很大的 kml 文件(大小 80000 行),可能更大,其中包含 xml 和 html,我需要在 xml 的特定元素上查找替换。
即
<href>some_random_file_name<href>
我需要用一个值替换那里的值 我曾尝试使用类似的东西:
http://www.mkyong.com/java/how-to-modify-xml-file-in-java-dom-parser/
但是发现html导致解析器出错,找不到我想要的元素。
现在我正在逐行遍历文件并寻找我想要的元素,但这非常慢。我需要一种相对有效的方法来处理这个问题。
迭代代码:
File kml = new File(kmlFile);
FileReader reader = new FileReader(kml);
BufferedReader br = new BufferedReader(reader);
String txt="";
String line = null;
while((line = br.readLine())!= null) {
if(line.contains("href")) {
String tmp = line.replace("<href>","");
tmp = tmp.replace("</href>","");
tmp = tmp.replaceAll("\t", "");
tmp = tmp.replaceAll("images/", "");
line = "<href>"+namesToIds.get(tmp)+"</href>";
}
txt+=line;
}
br.close();
FileWriter writer = new FileWriter(kml);
BufferedWriter bw = new BufferedWriter(writer);
bw.write(txt);
bw.flush();
bw.close();
我认为我现在无法安装 kml。如果这很重要,我可以尝试从中取出一堆东西来为互联网消毒。我认为其中可能有一些专有的东西。
【问题讨论】:
-
你能给我们展示一下迭代代码以及kml文件的样本吗?
-
Sed 可能更简单、更快捷。