Какой лучший способ применить XSL-преобразование к XElement? - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть документ, загруженный с помощью XElement.Parse (), и мне нужно применить к нему XSL-преобразование. Как бы я поступил так? Единственный способ, который я знаю, это использовать XPathDocument, и я не знаю, как конвертировать между ними, кроме XElement-> String-> StringReader-> Stream-> XPathDocument.

Должен быть лучший способ.

В связанном вопросе, как лучше всего применить XPath к XElement?

1 Ответ

5 голосов
/ 12 сентября 2011

Почему бы не использовать :

xslt.Transform(xelement.CreateReader(), arglist, someTextWriter);

, где xelement - это XElement,xslt является XslCompiledTransform, arglist является XsltArgumentList и someTextWriter являетсяTextWriter?

Другими словами, используйте этот метод экземпляра : XElement.CreateReader()

Или вы можете использовать:

xslt.Transform(xelement.CreateNavigator(null), someXmlWriter);

Подробнее о CreateNavigator() метод расширения здесь и здесь.

Последняя ссылка MSDN содержит полный пример кода XSLT-преобразования.

Обновление : Этот дополнительный вопрос был задан:

В связанном вопросе, как лучше всего применить XPath к XElement?

Существуют различные способы оценки выражения XPath по XNode

Extensions.XPathEvaluate()

или

Extensions.XPathSelectElements()

или

Extensions.XPathSelectElement()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...