2011-07-28 6 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라는 서버에 저장 한, 그것은 다음과 같이 갈까요 (이것이 XSLT가하는 것입니다) :

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

나는 XslTransform.Transform 방법은 새로운 파일을 생성하고, 내가 파일을

Recapitulating을 쓰고 싶어하지 않는다는 것입니다 문제는, 난 그냥 문자열을 걸릴 XSLT를 사용하여 변환 할 파일을 가지고 있고, 서버에 파일을 만들지 않고 변형 된 문자열을 반환합니다.

그래서 정말 :(사전에

감사를하고 좋은 하루들이 방법을 모르는 나는 그 어렵지 않다 생각하지만, 나는 .NET에서 새로운 해요!

답변

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

BTW는하여 XPathDocument 및 XslCompiledTransform를 사용합니다. XslTransform 및 XmlDocument보다 훨씬 빠릅니다. XmlDocument를 사용하여 XML을 만들더라도 변환을 위해 XPathDocument로 변환하십시오.

+0

감사합니다. –

+0

이것은 나에게 잘 맞았습니다. –

0

대신 사용 XslTransformXslCompiledTransform 방법을 사용합니다.. XslCompiledTransform.Transform, OutputStream에 결과를 저장

를 내가 볼 때, 당신의 XSLT 버전 2.0 그들 중 어느 쪽이 XSLT 2.0을 지원

+0

XSLT 2.0과 함께 probs없이 XslCompiledTransform을 사용할 수 있었지만 그 점을 지적 해 주셔서 감사합니다. –

0

Transform 메서드는 Stream outputStream 매개 변수를 취할 수 있습니다. StringWriter을 생성하여 출력 스트림으로 전달할 수 있습니다.

관련 문제