以下代碼工作正常,但很麻煩而且速度慢。我轉換一個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