Мое требование - обновить файл XML (некоторые элементы, идентифицируемые с помощью параметра, с новыми значениями атрибута, снова идентифицируемыми с помощью параметра).
Я использую XSLT, чтобы сделать то же самое с помощью кода C #.
Мой код выглядит следующим образом:
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(f_Xslt);
XmlReader xr = XmlReader.Create("SourceXML.xml");
XmlWriter xw = XmlWriter.Create("DestinationXML.xml");
XsltArgumentList argsList = new XsltArgumentList();
argsList.AddParam("", "", "");
...
...
...
xslt.Transform(xr, argsList, xw);
В моем XSLT-файле я сначала копирую все элементы, атрибуты.И затем, основываясь на <xsl:template match = ... />
, я обновляю элементы attr / values.
Все это сохраняется в Destination.xml
Что если я хочу, чтобы все это происходило в самом Source.xml.
Конечно, самое простое решение (или мое решение на данный момент) - заменить Source.XML на Destination.XML после успешного завершения XSLT.Transform.