Html Xsl转换将更改为
我正在尝试转换以下Xsl样式表Html Xsl转换将更改为,html,xml,xslt,tags,transformation,Html,Xml,Xslt,Tags,Transformation,我正在尝试转换以下Xsl样式表 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/TestPage" xml:space="preserve" >
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/TestPage" xml:space="preserve" >
<ul>
<li class="first complete-tab">
<i class="fa fa-check-circle"></i>Step 1
</li>
<li class="active">
<i class="fa fa-pencil"></i>Step 2
</li>
<li class="last">Step 3</li>
</ul>
</xsl:template>
</xsl:stylesheet>
上面的代码转换Xsl文件,但是我发现我没有得到所需的输出
结果是
<ul>
<li class="first complete-tab">
<i class="fa fa-check-circle" />Step 1
</li>
<li class="active">
<i class="fa fa-pencil" />Step 2
</li>
<li class="last">Step 3</li>
</ul>
对于第1步,我得到了以下信息,由于关闭标签,我的显示器被破坏。根据它的说法
如果样式表使用xsl:output元素且输出类型为
对于XmlWriter对象,应使用
创建时的XslCompiledTransform.OutputSettings属性
XmlWriter对象。XslCompiledTransform.OutputSettings属性
返回包含派生信息的XmlWriterSettings对象
来自已编译样式表的xsl:output元素。这
XmlWriterSettings对象可以传递给XmlWriter.Create方法
创建具有正确设置的XmlWriter对象
因此,您需要在这里使用XmlWriter,并在创建转换时将编译转换的OutputSettings传递给它
static string TransformDoc(XPathNavigator nav, string transformPath, XsltArgumentList args = null)
{
StringBuilder buffer = new StringBuilder();
string result = "A transformation Error Has Occurred";
XslCompiledTransform oTransform = new XslCompiledTransform();
XsltSettings oSettings = new XsltSettings(false, true);
oTransform.Load(transformPath, oSettings, null);
using (StringWriter stringWriter = new StringWriter(buffer))
using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, oTransform.OutputSettings))
{
if (args == null)
oTransform.Transform(nav, xmlWriter);
else
oTransform.Transform(nav, args, xmlWriter);
result = buffer.ToString();
}
return result;
}
尝试添加到您的stylesheet@TimC我按照你的建议添加,并更新了我的问题,但结果仍然相同。
static string TransformDoc(XPathNavigator nav, string transformPath, XsltArgumentList args = null)
{
StringBuilder buffer = new StringBuilder();
string result = "A transformation Error Has Occurred";
XslCompiledTransform oTransform = new XslCompiledTransform();
XsltSettings oSettings = new XsltSettings(false, true);
oTransform.Load(transformPath, oSettings, null);
using (StringWriter stringWriter = new StringWriter(buffer))
using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, oTransform.OutputSettings))
{
if (args == null)
oTransform.Transform(nav, xmlWriter);
else
oTransform.Transform(nav, args, xmlWriter);
result = buffer.ToString();
}
return result;
}