xml 和Xalt文件的转换

基于xml和XSLT之间的转换

代码
/// <summary>
/// 基于XML为字符,XSLT也为字符的转换
/// </summary>
/// <param name="xmlString">XML字符串</param>
/// <param name="xsltString">XSLT字符串</param>
/// <returns></returns>
public static string TransformFromString(string xmlString, string xsltString)
{
return TransformFromString(xmlString, xsltString, null);
}

/// <summary>
/// 基于XML为字符,XSLT也为字符的转换
/// </summary>
/// <param name="xmlString">XML字符串</param>
/// <param name="xsltString">XSLT字符串</param>
/// <param name="XsltArgument">参数列表</param>
/// <returns></returns>
public static string TransformFromString(string xmlString, string xsltString, NameValueCollection XsltArgument)
{
TextReader textReader
= new StringReader(xmlString);
TextReader xsltReader
= new StringReader(xsltString);

XmlReaderSettings settings
= new XmlReaderSettings();
settings.IgnoreWhitespace
= false;
XmlReader xmlReader
= XmlReader.Create(textReader, settings);

XmlReader dr
= XmlReader.Create(xsltReader);
XslCompiledTransform xslt
= new XslCompiledTransform();
xslt.Load(dr);
System.IO.StringWriter stringWriter
= new System.IO.StringWriter();

XsltArgumentList argsList
= null;
if (XsltArgument != null)
{
argsList
= new XsltArgumentList();
for (int i = 0; i < XsltArgument.Count; i++)
{
string key = XsltArgument.GetKey(i);
string value = XsltArgument.Get(i);
if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
argsList.AddParam(key,
"", value);
}
}
xslt.Transform(xmlReader, argsList, stringWriter);

return stringWriter.ToString();
}

/// <summary>
/// 基于XML为字符,XSLT为文件的转换
/// </summary>
/// <param name="xmlString">XML字符串</param>
/// <param name="xsltFilePath">XSLT文件路径</param>
/// <returns></returns>
public static string TransformFromFile(string xmlString, string xsltFilePath)
{
return TransformFromFile(xmlString, xsltFilePath, null);
}

/// <summary>
/// 基于XML为字符,XSLT为文件的转换
/// </summary>
/// <param name="xmlString">XML字符串</param>
/// <param name="xsltFilePath">XSLT文件路径</param>
/// <param name="XsltArgument">参数列表</param>
/// <returns></returns>
public static string TransformFromFile(string xmlString, string xsltFilePath, NameValueCollection XsltArgument)
{
TextReader textReader
= new StringReader(xmlString);

XmlReaderSettings settings
= new XmlReaderSettings();
settings.IgnoreWhitespace
= false;
XmlReader xmlReader
= XmlReader.Create(textReader, settings);

XslCompiledTransform xslt
= new XslCompiledTransform();
xslt.Load(xsltFilePath);
System.IO.StringWriter stringWriter
= new System.IO.StringWriter();

XsltArgumentList argsList
= null;
if (XsltArgument != null)
{
argsList
= new XsltArgumentList();
for (int i = 0; i < XsltArgument.Count; i++)
{
string key = XsltArgument.GetKey(i);
string value = XsltArgument.Get(i);
if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
argsList.AddParam(key,
"", value);
}
}
xslt.Transform(xmlReader, argsList, stringWriter);

return stringWriter.ToString();
}
}

 

posted @ 2010-09-17 14:14  marr  阅读(194)  评论(0编辑  收藏  举报