|
Есть web-приложение, которое по нажатию кнопки отправляет непонятный какой то запрос на сервер. Сервер возвращает ответ в виде http-запроса, в body которого написан xml. надо сделать так чтобы мы извлекли body в строку, к строке надо применить xslt-преобразование, а потом выдать его пользователю. Но есть проблема - не хочу создавать xml-файл внутри сервера страницы. В MSDN это преобразование описывается "статически", то есть берем два файла и применяем преобразования. А мне очень хочется это делать сразу и с лёгкостью.
пока что лишь нашёл такое рещение:
Ниже представлено описание метода, который получает на вход строку, в которой содержится некоторый xml. На выходе мы хотим получить response, которой было применено некоторое xslt-преобразование (оно конечно статическое и хранится в файле xsltTransfrmation.xslt) public static string outputTransformation(string response) { try { //загружаем xslt-перобразование XmlDocument xmlTransformation = new XmlDocument(); xmlTransformation.LoadXml("xsltTransformation.xslt"); //загружаем преобразователь XslCompiledTransform transformer = new XslCompiledTransform(); transformer.Load(xmlDocument); //подгружаем текущий xml-файл XmlDocument xmlResponse = new XmlDocument(); xmlResponse.LoadXml(response); //получаем xmlWriter StringBuilder htmlStringBuilder = new StringBuilder(); XmlWriterSettings writerSettings = new XmlWriterSettings(); writerSettings.ConformanceLevel = ConformanceLevel.Auto; XmlWriter xmlWriter = XmlWriter.Create(htmlStringBuilder, writerSettings); //выполняем xslt-преобразование transformer.Transform(xmlResponse, xmlWriter); return htmlStringBuilder.ToString(); } catch(System.Xml.XmlException ex) { Console.WriteLine(ex.StackTrace.ToString()); return "Возникла ошибка во время применения xslt-преобразования"; } catch(System.Xml.Xsl.XsltException ex) { Console.WriteLine(ex.StackTrace.ToString()); return "Возникла ошибка во время применения xslt-преобразования"; } }
Прошу вас подсказать мне если более простая реализация такого метода? и Code-review, если кому то что то не понравилось в моём коде - скажите, рад буду критике
|