private Tuple<Element, Element> symbol(final Path file, final String id) throws IOException {
    Element svg = Jsoup.parse(file.toFile(), "UTF-8").select("svg").first();
    Element symbol = new Element(Tag.valueOf("symbol"), "")
        .attr("id", id)
        .attr("viewBox", svg.attr("viewBox"));
    new ArrayList<>(svg.childNodes()).forEach(symbol::appendChild);
    return new Tuple(svg, symbol);
  }
private Tuple<Element, Element> symbol(final Path file, final String id) throws IOException {
    Element svg = Jsoup.parse(file.toFile(), "UTF-8").select("svg").first();
    Element symbol = new Element(Tag.valueOf("symbol"), "")
        .attr("id", id)
        .attr("viewBox", svg.attr("viewBox"));
    new ArrayList<>(svg.childNodes()).forEach(symbol::appendChild);
    return new Tuple(svg, symbol);
  }
private Tuple < Element , Element > symbol ( final Path file , final String id ) throws IOException { Element svg = Jsoup . parse ( file . toFile ( ) , "UTF-8" ) . select ( "svg" ) . first ( ) ; Element symbol = new Element ( Tag . valueOf ( "symbol" ) , "" ) . attr ( "id" , id ) . attr ( "viewBox" , svg . attr ( "viewBox" ) ) ; new ArrayList <> ( svg . childNodes ( ) ) . forEach ( symbol :: appendChild ) ; return new Tuple ( svg , symbol ) ; }
Read a svg file and return the svg element (original) and a new symbol element (created from
original).

@param file Svg file.
@param id   ID to use.
@return Svg element (original) and a symbol element (converted).
@throws IOException If something goes wrong.
Read a svg file and return the svg element ( original ) and a new symbol element ( created from original ) .