C# 如何使用XSLT两次转换XML?
我必须用不同的.xslt文件转换.xml两次,我知道如何转换一次,但不知道如何重复,因为当我的输出类似于html字符串时,我更改了代码,使用XmlWriter而不是StringWriter(注释),但它生成了一个空xml,因此无法再次传输C# 如何使用XSLT两次转换XML?,c#,html,xml,xslt,C#,Html,Xml,Xslt,我必须用不同的.xslt文件转换.xml两次,我知道如何转换一次,但不知道如何重复,因为当我的输出类似于html字符串时,我更改了代码,使用XmlWriter而不是StringWriter(注释),但它生成了一个空xml,因此无法再次传输 public static HtmlString RenderXml(this HtmlHelper helper, string xml, string transformXsltPath, string xsltPath) { xm
public static HtmlString RenderXml(this HtmlHelper helper, string xml, string transformXsltPath, string xsltPath)
{
xml = System.IO.File.ReadAllText(("C:/Users/Student/Documents/Visual Studio 2010/Projects/MvcApplication2/MvcApplication2/schemat.xsd"));
XsltArgumentList args = new XsltArgumentList();
XslCompiledTransform t = new XslCompiledTransform();
t.Load(transformXsltPath);
XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Parse;;
using (XmlReader reader = XmlReader.Create(new StringReader(xml), settings))
{
//StringWriter writer = new StringWriter();
XmlWriter writer = XmlWriter.Create(new StringWriter());
t.Transform(reader, args, writer);
XslCompiledTransform t2 = new XslCompiledTransform();
t2.Load(xsltPath);
XmlReader reader2 = XmlReader.Create(new StringReader(writer.ToString()), settings);
StringWriter writer2 = new StringWriter();
t2.Transform(reader2, args, writer2);
HtmlString htmlString = new HtmlString(writer2.ToString());
return htmlString;
}
}
我是否正确理解您正在使用一个应用XSLT转换的XML文件,其结果(可能是一种修改过的XML格式)将应用另一个XSLT转换?老实说,它是一个.xsd文件,需要使用.xsl转换以生成表单的HTML部分,但我想再次转换它,但是现在使用stylesheet.xsl也生成了表单的CSS部分。