Вот XSLT:
<xsl:stylesheet version="1.0" xmlns:P="http://abc.com/Xyz.xsd" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="Thing">
<xsl:element name="div">
<xsl:attribute name="class">
<xsl:text>Field</xsl:text>
</xsl:attribute>
<xsl:element name="span">
<xsl:attribute name="class">
<xsl:text>Label</xsl:text>
</xsl:attribute>
<xsl:value-of select="$displayName"/>
<xsl:text>:</xsl:text>
</xsl:element>
<xsl:element name="span">
<xsl:attribute name="class">
<xsl:text>Input</xsl:text>
</xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Вот результат преобразования XSLT:
<div class="Field"><span class="Label">Name:</span><span class="Input"></span></div>
Вот как я делаю преобразование:
XslCompiledTransform xslTransform = new XslCompiledTransform();
xslTransform.Load(xsltPath, new XsltSettings(true, true), new XmlUrlResolver());
using (FileStream outputStream = File.Create(outputPath))
{
using (StringReader stringReader = new StringReader(xml))
{
using (XmlReader xmlReader = XmlReader.Create(stringReader))
{
xslTransform.Transform(xmlReader, outputStream);
}
}
}
Почему формат не имеет отступа? Позже в выводе некоторые элементы имеют отступ. Не знаю почему. Я' m ищу решение, которое будет учитывать параметры формата, указанные в XSLT. Этот код используется для записи в любой формат (XML, HTML, текст и т. Д.), Поэтому мне не нужен конкретный код, который, например, будет работать только с XML. Но если мой XSLT выводит XML и настроен на отступ, это следует учитывать.