, 다음 코드를 작성하는 더 빠르고 간결한 방법이있다 : (! 지금까지 모든 해답을 주셔서 감사합니다)ASP.NET에서 XSLT 변환을 수행하는 가장 효율적인 방법은 무엇입니까? 즉
//Create an object for performing XSTL transformations
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(HttpContext.Current.Server.MapPath("/xslt/" + xsltfile.Value), new XsltSettings(true, false), new XmlUrlResolver());
//Create a XmlReader object to read the XML we want to format
//XmlReader needs an input stream (StringReader)
StringReader sr = new StringReader(node.OuterXml);
XmlReader xr = XmlReader.Create(sr);
//Create a StringWriter object to capture the output from the XslCompiledTransform object
StringWriter sw = new StringWriter();
//Perform the transformation
xslt.Transform(xr, null, sw);
//Retrieve the transformed XML from the StringWriter object
string transformedXml = sw.ToString();
UPDATE : 내 모호성에 대한
죄송합니다 :에 의해 " 더 빨리 "그리고"간결하게 "내 말은, 나는 불필요한 단계를 포함합니까? 또한 다른 사람이 있다면 더 읽기 쉬운 솔루션을 좋아할 것입니다. 이 코드를 개발중인 웹 응용 프로그램의 작은 부분에서 사용하고 응용 프로그램의 상당 부분으로 이동하려고합니다. 그래서 이동하기 전에 깔끔하게 만들 수 있습니다. .
또한 데이터베이스와 통신하는 정적 클래스 (별도의 데이터 액세스 클래스 라이브러리에 있음)에서 XML을 가져옵니다. 또한 변환 된 XML 문자열을 웹 페이지로 전달하기 전에 조작합니다. 이 경우 입력/응답 스트림이 여전히 실행 가능한지 확실하지 않습니다.
한 가지 더 : XML과 XSLT가 변경 될 수 있습니다 (응용 프로그램 사용자가 두 가지 모두를 변경할 수 있음). 그래서 매번 컴파일해야 할 것입니다. 당신은 ASP.NET을 언급 이후
위의 코드를 작성하는 데 더 읽기 쉬운 방법이있을 수 있지만 거기에는 필수 단계가 있습니다. 나는 당신이 "더 빠름"을 의미하는 것이 확실하지 않습니까? – Lee
클라이언트 측에 표시되도록 XML을 변환하는 경우 asp : XML 컨트롤을 사용하지 않는 이유가 있습니까? 변형 된 문자열을 표시하는 것이 더 간단하지만 브라우저 사이드를 어떻게 사용하는지 모르겠습니다. http://msdn.microsoft.com/en-us/library/63cbk9e7(VS.85).aspx –
@Jim asp : XML 컨트롤은 이전의 느린 XslTransform 클래스를 사용하므로 더 이상 사용되지 않습니다. http : //를 참조하십시오. 유용했던만큼 www.tkachenko.com/blog/archives/000513.html 수치심. –