2015-04-21 4 views
0

я получил узел XML, который содержит данные SVG (часть правил для данных ГИС OSM) следующим образом:создание/извлечение SVG изображения из XML-данных

<svg:symbol id="synagogue" viewBox="0 0 20 20" stroke="#0000d0" fill="none" stroke-width="1.5px" stroke-linecap="butt" stroke-linejoin="miter"> 
     <svg:path d="M 10,0 L 20,15 L 0,15 L 10,0 z M 10,20 L 0,5 L 20,5 L 10,20 z"/> 
    </svg:symbol> 

Как я могу преобразовать эти данные в SVG изображения? Я загружаю библиотеку SvgDocument (для C#) и успешно использовал ее, но формат этого определенного узла, я не могу его преобразовать .. Что такое данные атрибута d?

Например файлов я успешно преобразован:

<?xml version="1.0" encoding="UTF-8"?> 
<svg width="20" height="20" id="symbol-parking-private"> 
<rect x="0.5" y="0.5" width="19" height="19" rx="2" ry="2" style="stroke:#aaaaaa;stroke-width:1;fill:#ffffff" /> 
<path d="M4,17 L4,3 10,3 C14,3 16,5 16,7.5 C16,10 14,12 10,12 L8.5,12 8.5,17 z M8.5,9 L10,9 C13,9 13,6 10,6 L8.5,6 8.5,9 z" style="stroke-width:0;fill:#aaaaaa" /> 
</svg> 
+0

Данные атрибута «d» - это данные, которые дают сдвиги svg, вы можете рисовать все, что хотите, с помощью атрибута path + d. Чтобы преобразовать узел xml, вам просто нужно преобразовать путь Julo0sS

+0

ОК, это то, чего у меня не хватало, чтобы взять путь: и поместить его как имя узла, а затем - атрибут. спасибо – ilansch

+0

точно, я уже делал работу с конверсиями SVG, я недавно получил много xml от openstreetmap. – Julo0sS

ответ

1
  1. удалить все svg: префиксы
  2. symbol должны быть заключены в defs, то он может быть использован с use

см http://jsfiddle.net/5ac52gs6/1/

кстати. ваш symbol viewBox разрезает некоторые части символа (вы должны обратить внимание на stroke-width)

Смежные вопросы