2011-07-28 16 views
2

XSLTを使用してxmlを含む文字列を変換したいのですが、それはコロンビアの会社のためです。 ):私は、変換されたデータの文字列を返すメソッドを作成したいC#でXSLTを使用してxml文字列を変換する方法

string xmlTFDNode = @<tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital TimbreFiscalDigital.xsd" selloCFD="tOSe+Ex/wvn33YlGwtfmrJwQ31Crd7lI9VcH63TGjHfxk5vfb3q9uSbDUGk9TXvo70ydOpikRVw+9B2Six0m bu3PjoPpO909oAYITrRyomdeUGJ4vmA2/12L86EJLWpU7vIt4cL8HpkEw7TOFhSdpzb/890+jP+C1adBsHU1VHc=" FechaTimbrado="2010-03-06T20:40:10" UUID="ad662d33-6934-459c-a128-bdf0393e0f44" noCertificadoSAT="30001000000100000801" version="1.0" selloSAT="j5bSpqM3w0+shGtImqOwqqy6+d659O78ckfstu5vTSFa+2CVMj6Awfr18x4yMLGBwk6ruYbjBlVURodEIl6n JIhTTUtYQV1cbRDG9kvvhaNAakxqaSOnOx79nHxqFPRVoqh10CsjocS9PZkSM2jz1uwLgaF0knf1g8pjDkLYwlk="/> 

と私はXLST を持って This is the XSLT file

InvoiceTFD.xsltという名前のサーバーに保存されている、それは次のようになりshoud (これがXSLTの機能です)

||1.0|ad662d33-6934-459c-a128-bdf0393e0f44|2001-12- 
17T09:30:47Z|iYyIk1MtEPzTxY3h57kYJnEXNae9lvLMgAq3jGMePsDtEOF6XLWbrV2GL/ 
2TX00vP2+YsPN+5UmyRdzMLZGEfESiNQF9fotNbtA487dWnCf5pUu0ikVpgHvpY7YoA4 
lB1D/JWc+zntkgW+Ig49WnlKyXi0LOlBOVuxckDb7EAx4=|123456789|| 

要約すると、私はXslTransform.Transform方法は、新しいファイルを作成することです、と私は、ファイルを書きたくない問題、私は単なる文字列を取りたい、XSLTを使用して、それを変換します私が持っているファイル、そしてそれをサーバー上にファイルを作成せずに変換した文字列を返すのです!

ので、私は本当にそれ:(事前に

感謝をして、素晴らしい一日の人を持ってする方法がわからない私はそれは難しいことではありません信じているが、私は.NETで新たなんだ!!

代わりに XslTransform

答えて

2

あなたは書くことができます。メモリストリームに:ところで

MemoryStream oStream = new MemoryStream() 
oXslt.Transform(new XPathDocument(new XmlNodeReader(oXml)), null, oStream); 
oStream.Position = 0 
StreamReader oReader = new StreamReader(oStream); 
string output = oReader.ReadToEnd(); 

、XPathDocumentオブジェクトとXslCompiledTransformではを使用しています。それらはXslTransformとXmlDocumentよりはるかに高速です。 XmlDocumentを使用してXMLを作成した場合でも、変換のためにXPathDocumentに変換します。

+0

大好き、 –

+0

これは私にとってもうまくいきました –

0

使用XslCompiledTransform方法を使用します。OutputStreamに結果保存、XslCompiledTransform.Transform

私が見るように、あなたのXSLTは、バージョン2.0で、それらはいずれも、XSLT 2.0をサポートして

+0

XSLT 2.0でprobsを使用してXslCompiledTransformを使用することができましたが、それを指摘してくれてありがとうございます。 –

0

Transformメソッドは、Stream outputStreamパラメータを取ることができます。 StringWriterを作成し、出力ストリームとして渡すことができます。

関連する問題