XmlDocument Transform의 경우에는 아래와 같이 하시면 됩니다.
2009/01/13 - [CSharp/Development] - Xml Xslt Transform with C#
요즘 XDocument를 많이 사용하고 있어서 Extensions 매소드로 따로 만들어 보았습니다.
별로 어려운 부분은 없으며, 그냥 아래 코드를 참고 하시면 될 것 같습니다.
Extension Method
public static class XDocExtensions { #region // static string GetTransformation(this XDocument xDoc, string strXslPath) // /// <summary> /// XDocument에 Xsl를 트랜스포메이션 한 후 해당 데이터를 반환한다. /// </summary> /// <param name="xDoc">Xml Doc</param> /// <param name="strXslPath">Xsl Path</param> /// <returns>Transform Data</returns> public static string GetTransformation(this XDocument xDoc, string strXslPath) { string strResult = String.Empty; XslCompiledTransform xsl = new XslCompiledTransform(true); xsl.Load(strXslPath); using (var ms = new MemoryStream()) { XmlWriterSettings settings = new XmlWriterSettings() { ConformanceLevel = ConformanceLevel.Auto }; using (var writer = XmlWriter.Create(ms, settings)) { xsl.Transform(xDoc.CreateReader(), writer); writer.Flush(); ms.Position = 0; strResult = Encoding.UTF8.GetString(ms.GetBuffer()); } } return strResult; } #endregion }
아래는 해당 메소드 호출 부분입니다.
XDocument doc = new XDocument( new XElement("Roots", new XElement("Item", "1") , new XElement("Item", "2"))); string strTransformData = String.Empty; strTransformData = doc.GetTransformation(Server.MapPath(strXslPath));
이상입니다.
감사합니다.
'CSharp > Development' 카테고리의 다른 글
C# 금주의 시작일과 끝일 가져오기 (0) | 2011.08.03 |
---|---|
Dropdownlist, Listbox Sorting With Linq (0) | 2011.07.19 |
reading Excel Open XML is ignoring blank cells (1) | 2011.05.12 |
Reading dates from OpenXml Excel files (0) | 2011.05.12 |
.NET Framework 버전 별 새로운 기능 (0) | 2011.03.23 |