Я довольно новичок в XSLT и использовал его только для некоторых базовых преобразований XML в HTML.В настоящее время я пытаюсь создать руководство по запчастям на основе XML-материала, используя XSLT.Во время этого процесса мне нужно создать копию файла SVG и внести некоторые изменения в вывод.Однако я не могу заставить свой XSLT скопировать или вывести содержимое исходного SVG.
Вот фрагмент кода XML, который я пытаюсь проанализировать:
<Assembly>
<Item HPN="1234567" Rev="0" Desc="Assembly" Dwg="7654321" DwgRev="8">
</Assembly>
В моем XSLT у меня есть следующий код, чтобы прочитать имя файла для SVG и сделать его копию:
<xsl:template match="Assembly/Item">
<xsl:variable name="Dwg"><xsl:value-of select="@Dwg"/></xsl:variable>
<xsl:variable name="DwgRev"><xsl:value-of select="@DwgRev"/></xsl:variable>
<xsl:if test="not(@Dwg = preceding::Item/@Dwg)">
<xsl:call-template name="SVGConversion">
<xsl:with-param name="Dwg" select="$Dwg"/>
<xsl:with-param name="DwgRev" select="$DwgRev"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
Шаблон SVGConversion сохраняется в отдельной таблице стилей XSLT, которая была импортированав основную таблицу стилей.Возможно, в этом нет необходимости, но меня беспокоит метод вывода.
<xsl:output method="xml" indent="no" media-type="image/svg"/>
<xsl:template name="SVGConversion">
<xsl:param name="Dwg"/>
<xsl:param name="DwgRev"/>
<xsl:variable name="SVGCall">document('Drawings/<xsl:value-of select="$Dwg"/>_<xsl:value-of select="$DwgRev"/>.svg')</xsl:variable>
<xsl:result-document encoding="UTF-8" indent="yes" href="{$ProjectPath}/App/Graphics/{$Dwg}_{$DwgRev}.svg">
<xsl:apply-templates select="$SVGCall"/>
</xsl:result-document>
</xsl:template>
Этот код создает файл SVG с правильным именем файла в месте вывода, но он пуст.Как скопировать код из исходного SVG в новый файл SVG, имея в виду, что я также хочу вносить изменения в части кода SVG во время обработки?
Я пытался использовать, а такжезахватить содержимое файла SVG, но получил те же результаты.
Может также помочь узнать, что я использую парсер Kernow 1.6.1.Не уверен, что это часть проблемы.
Буду признателен за любой совет, который кто-либо может предложить.