gpt4 book ai didi

c# - 将 XDocument 优化为 XDocument XSLT

转载 作者:行者123 更新时间:2023-11-30 14:04:30 25 4
gpt4 key购买 nike

下面的代码可以工作,但是很乱而且很慢。我正在使用带有 Saxon 的 XSLT2 将一个 XDocument 转换为另一个 XDocument,使用 SaxonWrapper 进行改编:

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 之间的所有切换以及编写器的使用?

最佳答案

eddiegroves的解决方案很好。除了有一个问题,作者不会一直被冲洗。为防止这种情况,请使用以下内容:

XDocument outputDoc = new XDocument();
using (var writer = outputDoc.CreateWriter()) {
processor.Transform(sourceDoc, writer);
}
return outputDoc;

这可确保在返回输出文档之前处理并刷新写入器。

关于c# - 将 XDocument 优化为 XDocument XSLT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1832360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com