- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
private string ContentTransformation(string _xmlContent, string _xsltScheme)
{
try
{
XmlReaderSettings xmlRS = new XmlReaderSettings();
XPathDocument doc = new XPathDocument(XmlReader.Create(new StringReader(_xmlContent), xmlRS));
XPathNavigator nav = doc.CreateNavigator();
XmlReader reader = XmlReader.Create(new StringReader(nav.OuterXml));
reader.MoveToContent();
System.IO.StringReader strRead = new StringReader(_xsltScheme);
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(XmlReader.Create(strRead));
// Transform the node fragment.
StringWriter strW = new StringWriter();
XmlWriterSettings wrSet = new XmlWriterSettings();
wrSet.ConformanceLevel = ConformanceLevel.Auto;
XmlWriter xmlW = XmlWriter.Create(strW, wrSet);
xslt.Transform(reader, xmlW);
xmlW.Close();
return strW.ToString();
}
catch (ArgumentNullException anEx)
{
return "XSL преобразование не выполнено!<br>Параметр равен null.<br>" + anEx.Message;
}
catch (XsltException xsltEx)
{
return "XSL преобразование не выполнено!<br>Проверте XSL схему.<br>" + xsltEx.Message;
}
catch (Exception ex)
{
return ex.Message;
}
}
Учимся применять XSL шаблон к XML данным, и между делом поглядываем в сий гениальный шедевр - в нем вся истина о том, как четко и со вкусом, а главное элегантно выполнить эту задачу. Да еще и обработка ошибок сделана! Шикарный кусок.
ArmHorse 16.11.2010 12:58 # +2
Анонимус 19.11.2010 14:17 # 0