XsltArgumentList arguments = null;
XslTransform xslt = new XslTransform();
xslt.Load(this.Context.Request.PhysicalApplicationPath + "/questions.xsl");
XmlTextReader tr = new XmlTextReader(this.Context.Request.PhysicalApplicationPath + "/questions.xml");
XPathDocument xpd = new XPathDocument(tr);
XPathNavigator xpn;
xpn = xpd.CreateNavigator();
XPathNodeIterator iter;
iter = xpn.Select("/Questions/TestInformation/TestID");
iter.MoveNext();
string surveyNumber = iter.Current.Value;
XmlTextWriter textWriter = new XmlTextWriter(this.Context.Request.PhysicalApplicationPath + "questions" + surveyNumber + ".html", null);
arguments = new XsltArgumentList();
arguments.AddParam("conference","",ddpConferences.SelectedItem.Text);
xslt.Transform(xpn, arguments, textWriter);
textWriter.Close();
StringWriter writer = new StringWriter();
xslt.Transform(xpn, arguments, writer);
writer.Close();
tr.Close();
Создание XML документа в С#
добрый день. нужно создать в с# хмл документ, который будет потом открывать в вроде, причем такой что бы значение параметров в хмл документе можно менять. помогите пожалуйста
У тебя есть какой-то исходный XML. В нем нужно записать значения которые у тебя меняться не будут. Затем создаешь XSLT скрипт который будет принимать в виде аргументов значения тех переменных которые тебе нужно менять. В самом XSLT-скрипте ты можешь формировать результат используя данные из исходного XML и из аргументов переданных при вызове.
Где ты будешь просматривать результат - твое дело. Можно в Ворде можно еще где-нибудь.
с синтаксисом XSLT я вроде разобрался, но не мог ты конкретнее описать функции для создания XSLT скрипта в C# или кинуть ссылку на материал.
XSLT скрипт ты создаешь отдельно от C#. Можешь это сделать в FARе, можешь в XMLSpy или Notepad. Не имеет значения.
В C# ты должен совершать XSLT преобразование с помощью уже готового XSLT скрипта.
Вкратце, это должно выглядеть так:
1) Читаешь файл с XML.
2) Читаешь файл с XSLT.
3) Создаешь XML-файл куда будешь записывать результат.
4) Создаешь объект XslTransform и добавляешь в него аргументы которые нужно передать в XSLT.
5) Выполняешь XSLT преобразование.
6) Закрывешь все созданные объекты.
Вот пример:
Код: