SVG / XML: удалить ненужные теги XML / SVG www.w3.org/2000/svg? - PullRequest
1 голос
/ 14 мая 2011

Нам нравится смешивать SVG-код с шаблонами JQuery. Когда мы сохраняем SVG-графику из Adobe Illustrator или Inkscape, они имеют больше, чем просто теги xmlns="http://www.w3.org/2000/svg", имеющие собственные "подсказки" или код, который будет игнорироваться в браузере HTML 5.

Мы хотим создать графику, например, в Inkscape, а затем использовать ее без необходимости вручную выбирать нежелательные игнорируемые теги, возможно даже форматируя их.

Существует ли какой-либо код, который может удалять или минимизировать несовместимые теги svg, создаваемые этими программами на основе xmlns="http://www.w3.org/2000/svg"?

Мы будем использовать ASP.NET MVC 3 для предоставления этих шаблонов, используя вызовы JQuery .ajax, так что существует потенциал «очистителя» C # XML на основе пространства имен?

Ответы [ 2 ]

3 голосов
/ 14 мая 2011

Проверьте инструмент Джеффа Шиллера Scour: http://www.codedread.com/scour/

2 голосов
/ 15 мая 2011

Если вы можете использовать XSLT, следующее преобразование отбросит все элементы, которые не находятся в пространстве имен SVG:

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                xmlns:svg="http://www.w3.org/2000/svg">

<!-- Any element matching svg namespace is copied. -->
<xsl:template match="svg:*">
  <xsl:copy>
    <xsl:copy-of select="@*[namespace-uri()='']"/>
    <xsl:apply-templates select="node()"/>
  </xsl:copy>
</xsl:template>

<!-- Default: Exclude element -->
<xsl:template match="*"/>

</xsl:stylesheet>

Необходимо немного позаботиться о правильной обработке атрибута.Некоторое программное обеспечение для редактирования SVG добавляет дополнительные атрибуты, поэтому, когда мы копируем атрибуты, мы копируем их только в пространство имен по умолчанию, поэтому стандартные атрибуты, отличные от SVG, также удаляются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...