今天客户提出来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