【发布时间】:2018-04-06 09:47:28
【问题描述】:
我正在尝试转换以下 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" >
<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>
我使用的代码如下。
class Program
{
static void Main(string[] args)
{
string xslFile = "C:\\Projects\\Test.xsl";
XmlDocument doc = new XmlDocument();
XmlElement rootElement = doc.CreateElement("TestPage");
doc.AppendChild(rootElement);
string result = TransformDoc(doc, xslFile);
}
private static string TransformDoc(XmlDocument doc, string transformPath)
{
return TransformDoc(doc.CreateNavigator(), transformPath);
}
static string TransformDoc(XPathNavigator nav, string transformPath, XsltArgumentList args = null)
{
StringBuilder buffer = new StringBuilder();
string result = "A transformation Error Has Occurred";
using (StringWriter stringWriter = new StringWriter(buffer))
using (XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter))
{
XslCompiledTransform oTransform = new XslCompiledTransform();
XsltSettings oSettings = new XsltSettings(false, true);
oTransform.Load(transformPath, oSettings, null);
if (args == null)
oTransform.Transform(nav, xmlWriter);
else
oTransform.Transform(nav, args, xmlWriter);
result = buffer.ToString();
}
return result;
}
}
上面的代码转换了 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>
对于<i class="fa fa-check-circle"></i>Step 1,我收到以下<i class="fa fa-check-circle" />,由于关闭标签,我的显示中断了。
【问题讨论】:
-
尝试将
<xsl:output method="html" />添加到您的样式表中 -
@TimC 我按照您的建议添加,并更新了我的问题,但结果仍然相同。
标签: html xml xslt tags transformation