0

我想使用 xslt.here 将一个 xml 文件转换为另一个 xml 文件,我可以将输入文档传递给 XPathDocument,还可以通过将 outfile 传递给 XmlTextWriter 将输出文件保存在磁盘中。

但现在我的问题是......我的输入是字符串格式,我也希望输出为字符串。我不想传递输入文件的位置,而是传递包含 xml 数据的字符串。

所以我必须以某种方式将字符串对象传递给 xpathDoccument 并将生成的 xml 文件作为字符串获取。而不是将输出保存为文件,我希望输出为字符串。

            XPathDocument xpathDoc = new XPathDocument("C:\\InputXml.xml");
            XslCompiledTransform xslt = new XslCompiledTransform();

            string xsltFile = "C:\\conversion.xslt";
            xslt.Load(xsltFile);

            string outputFile = "C:\\myHtml.html";
            XmlTextWriter writer = new XmlTextWriter(outputFile, null);
            xslt.Transform(xpathDoc, null, writer);
            writer.Close();

请指导我摆脱这个问题......

4

2 回答 2

2

XPathDocument 接受TextReader. 您可以将流作为new XPathDocument(new StringReader(xmlstring)). 同样XmlTextWriter接受TextWriter。所以你可以通过一个StringWriter.

- 编辑 -

var sw = new StringWriter();
XmlTextWriter writer = new XmlTextWriter(sw);
xslt.Transform(xpathDoc, null, writer);
var str= sw.ToString();
于 2012-06-05T11:47:33.110 回答
1

尝试这个,

XslTransform  xTrans = new XslTransform();
xTrans.Load(nodeXsltPath);    //xsl file path
XmlDocument input= new XmlDocument();
XmlDocument output= new XmlDocument();
input.LoadXml(xmlString); /* Xml string to be loaaded */                        
output.Load(xTrans.Transform(input,null,new XmlUrlResolver()));
output.Save(filePathtoSave);
于 2012-06-05T11:49:34.273 回答