以下代码工作正常,但很麻烦而且速度慢。我转换一个XDocument使用XSLT2与撒克逊其他的XDocument,适于利用SaxonWrapper:将XDocument优化为XDocument XSLT
public static XDocument HSRTransform(XDocument source)
{
System.Reflection.Assembly thisExe = System.Reflection.Assembly.GetExecutingAssembly();
System.IO.Stream xslfile = thisExe.GetManifestResourceStream("C2KDataTransform.Resources.hsr.xsl");
XmlDocument xslDoc = new XmlDocument();
xslDoc.Load(xslfile);
XmlDocument sourceDoc = new XmlDocument();
sourceDoc.Load(source.CreateReader());
var sw = new StringWriter();
Xsl2Processor processor = new Xsl2Processor();
processor.Load(xslDoc);
processor.Transform(sourceDoc, new XmlTextWriter(sw));
XDocument outputDoc = XDocument.Parse(sw.ToString());
return outputDoc;
}
我意识到缓慢实际上可能是在位我都无法控制,但有更好的方法可以做到所有的开关XDocument和XmlDocument之间以及作者的用法?
谢谢 - 它很好地整理它。 – djskinner 2009-12-09 16:10:36
谁是更快的表弟? – Devela 2012-10-17 18:44:08
@Devela XDocument和好友(Linq to XML)是.NET BCL中的现代xml API,它在大多数场景中取代了XmlDocuemnt。 – eddiegroves 2012-10-17 22:44:01