今天客户提出来svg 图可能随时要换,所有我同事就提出了解析svg得代码,然后根据.vue文件操作svg图,我这边就找了一下网上解析svg 文件得代码但是都没说的很明白我自己建了一个java 项目测试了一下
// 解析svg public static String analysisofSVG(String URI) throws Exception { File file = new File(URI);//svg url String parser = XMLResourceDescriptor.getXMLParserClassName(); SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parser); Document doc = f.createDocument(file.toURI().toString()); //获取svg 标签得Id Element element = doc.getElementById("svgid"); String elementStr = TransformationSVG(element); System.out.println(elementStr); return elementStr; } // 将标签转换成字符串 public static String TransformationSVG(Element element) { TransformerFactory transFactory = TransformerFactory.newInstance(); Transformer transformer = null; try { transformer = transFactory.newTransformer(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } StringWriter buffer = new StringWriter(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); try { transformer.transform(new DOMSource(element), new StreamResult(buffer)); } catch (TransformerException e) { e.printStackTrace(); } String elementStr = buffer.toString(); System.out.println("svg 所有标签"+elementStr); return elementStr; }
重点是获取svg标签id 这啊,svg 标签是没有id 得,我们可以给他想办法设置以下id,这个网上都有。
这个是需要的jar 包有需要的下载地址链接:https://pan.baidu.com/s/1BUKRYwym8qKValldR__dKw
提取码:br6m