今天客户提出来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,这个网上都有。

 

 

java获取SVG文件里面得所有标签这个是需要的jar 包有需要的下载地址链接:https://pan.baidu.com/s/1BUKRYwym8qKValldR__dKw 
提取码:br6m

相关文章: