编辑:这些文件被发布到我正在处理的网络服务器上,我现在手头没有它们,只有一个“代表性样本”。
我有很大的 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。如果这很重要,我可以尝试从中取出一堆东西来为互联网消毒。我认为其中可能有一些专有的东西。