change svg:g id to inkscape:label
inkscape, svg
Solution
I recently came across this question, as I was looking for the same topic. As it turned out, Inkscape (v0.92) has functions for that purpose now.
You can set IDs, and Labels in the Inkscape GUI in `Object Properties` menu, and they will be applied to the XML code then.
Example
Inkscape GUI
- Draw a yellow rectangle and select it
- Click on Object -> Object Properties...
- In the menu set ID to `yellow_rect` and Label to `#yellow_rect`
- Apply changes by a click on Set
- To complete this example, repeat the steps above to create `red_rect`, set Label and ID
- Eventually, group both rectanbles and set identifiers for the group as well.
XML Code
When I open the SVG file, Inkscape put my identifiers to the appropriate XML tags.
<g
id="rect_group">
<rect
rx="0.11797347"
y="250.69791"
x="5.0270834"
height="18.785416"
width="30.427082"
id="yellow_rect1"
style="fill:#f4ff00;fill-opacity:1;stroke:#000000;stroke-width:0.52916667;stroke-linejoin:round;stroke-miterlimit:3.79999995;stroke-dasharray:none;stroke-opacity:1" />
<rect
rx="0.11797347"
y="258.89999"
x="24.606249"
height="16.933332"
width="33.602081"
id="red_rect1"
style="fill:#f40000;fill-opacity:1;stroke:#000000;stroke-width:0.52916664;stroke-linejoin:round;stroke-miterlimit:3.79999995;stroke-dasharray:none;stroke-opacity:1" />
</g>
Problem
I made a vector graphic in Inkscape, including layers and sub-layers for further use in Processing. I named all the layers in the UI, and realized that the final SVG only creates an `inkscape:label` attribute with that name, but `id` remains generic: ``` <svg:g id="layer1" inkscape:label="My custom label"> ``` I know I can manually edit the labels in the XML editor, but is there a setting somewhere to automatically use the layer name as id?