Я использовал этот метод расширения для преобразования очень больших файлов XML с помощью xslt.
К сожалению, я получаю исключение OutOfMemoryException в строке source.ToString ().
Я понимаю, что должен быть лучший путь, я просто не уверен, что это будет?
public static XElement Transform(this XElement source, string xslPath, XsltArgumentList arguments)
{
var doc = new XmlDocument();
doc.LoadXml(source.ToString());
var xsl = new XslCompiledTransform();
xsl.Load(xslPath);
using (var swDocument = new StringWriter(System.Globalization.CultureInfo.InvariantCulture))
{
using (var xtw = new XmlTextWriter(swDocument))
{
xsl.Transform((doc.CreateNavigator()), arguments, xtw);
xtw.Flush();
return XElement.Parse(swDocument.ToString());
}
}
}
Мысли? Решения? И т.д.
UPDATE:
Теперь, когда это решено, у меня есть проблемы с проверкой схемы!
Проверка больших файлов XML