Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Xsl转换将更改为_Html_Xml_Xslt_Tags_Transformation - Fatal编程技术网

Html 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样式表

<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;
    }