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 |