2012-06-05 24 views
0

我想使用xslt.here將一個xml文件轉換爲另一個xml文件,我可以將輸入文檔傳遞給XPathDocument,並通過將輸出文件傳遞到XmlTextWriter來將輸出文件保存在磁盤中。如何使用C#在xslt變換中傳遞和獲取基於字符串的xml數據?

但現在我的問題是...我有我的輸入是字符串格式,我也希望輸出爲一個字符串。而不是傳遞輸入文件的位置,我想傳遞包含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(); 

請指引我走出這個問題...

回答

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(); 
+0

:OK,然後如何得到的結果作爲一個字符串... – Saravanan

+0

@Saravanan查看編輯 –

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); 
相關問題