0

xslt.hereを使用して1つの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 に答える