Извиняюсь, если это простой вопрос, так как я довольно новичок в XSLT. У меня возникла проблема, из-за которой изображение SVG, которое я генерирую в XSLT, не будет отображаться, если для моего метода вывода установлено значение html. Если я открою нужный XML-файл, преобразую его и просматриваю в браузере (IE v11), весь документ загружается, за исключением самого изображения SVG. В IE, если я щелкну правой кнопкой мыши по документу и выберу «просмотреть источник», я смогу увидеть информацию о SVG, находящуюся там, где она должна быть.
Если я установлю метод вывода на xml и открою в IE, изображения SVG действительно появляются, но структура документа отсутствует (но, повторюсь: цель состоит в том, чтобы выводить в формате html, как это используется в других процессахдалее)
Ниже приведен фрагмент небольшого простого тестового XSLT и xml-кода после преобразования, видимого из «view source» (без учета не связанных между собой вещей). Я пытаюсь заставить это работать в небольшом масштабе, прежде чем я займусь более широкой картиной.
Также отметим, что тег svg: text отображает упомянутый текст, хотя он больше похож на простую текстовую запись, чем на часть изображения.
Для тех, кто знаком с ним, большая часть функциональности исходит от генератора штрих-кодов XSLT RenderX.
XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg">
<xsl:import href="code128.xsl"/>
<xsl:output method='html' media-type="image/svg" encoding='UTF-8' indent='yes'/>
<xsl:template match="/">
<html lang="en">
<head>
<title>SVG bar code examples</title>
</head>
<body>
<h1>SVG bar code examples</h1>
<ul>
<xsl:apply-templates select="//barcode"/>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="barcode">
<li>
<xsl:call-template name="barcode-code128">
.
<!--Parameters here-->
.
</xsl:call-template>
</li>
</xsl:template>
</xsl:stylesheet>
PostXML преобразования:
<?xml version="1.0" encoding="utf-8"?>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg">
<head>
<title>SVG bar code examples</title>
</head>
<body>
<h1>SVG bar code examples</h1>
<ul>
<li>
<svg:svg width="29.494444444444443mm" height="12.7mm" viewBox="0 0 10618 4572">
<svg:path d="M 686 686 l 0 2286 138 0 0 -2286 z m ..."(truncated due to length)>
<svg:text x="6068" y="4420" text-anchor="middle" font-family=...
</svg:svg>
</li>
.
<!--More SVG images here-->
.
</ul>
</body>
</html>