Java用DOM处理svg变慢

在用Java用DOM处理svg的时候出现了处理很慢的问题, 经研究发现是需要联网下载一个dtd文件导致变慢。

解决方案: 解析时删除DOCTYPE所在行(这可能会导致一些我不需要的数据的丢失)。

代码如下:

			//删除DOCTYPE, 要不然要联网!! 慢死了!!!
			FileInputStream inputs = new FileInputStream(filename);
			Scanner sc = new Scanner(inputs);
			ByteArrayOutputStream  os = new ByteArrayOutputStream ();
			while (sc.hasNextLine()){
				String ln = sc.nextLine();
				if (!ln.startsWith("<!DOCTYPE")) {
					os.write((ln+"\r\n").getBytes());
				}
			}
			sc.close();
			
			DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); 
			DocumentBuilder builder;
			builder = factory.newDocumentBuilder();
			Document doc = builder.parse(new ByteArrayInputStream(os.toByteArray()));

发表评论

注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

本文链接:https://twd2.me/archives/3811QrCode