Я хочу применить таблицу стилей XSLT к XML-документу с помощью C# и записать вывод в файл.Как применить таблицу стилей XSLT в C#
ответ
Я нашел возможный ответ здесь: http://web.archive.org/web/20130329123237/http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=63
Из статьи:
XPathDocument myXPathDoc = new XPathDocument(myXmlFile) ;
XslTransform myXslTrans = new XslTransform() ;
myXslTrans.Load(myStyleSheet);
XmlTextWriter myWriter = new XmlTextWriter("result.html",null) ;
myXslTrans.Transform(myXPathDoc,null,myWriter) ;
Edit:
Но мой верный компилятор говорит, XslTransform
является устаревшим: Использование XslCompiledTransform
вместо:
XPathDocument myXPathDoc = new XPathDocument(myXmlFile) ;
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load(myStyleSheet);
XmlTextWriter myWriter = new XmlTextWriter("result.html",null);
myXslTrans.Transform(myXPathDoc,null,myWriter);
Поскольку я взял часть вашего ответа, чтобы создать класс, с которым я связан, подумал, что я бы назвал его комментарий здесь. Надеюсь, это упростит для людей: http://dftr.ca/?p=318 – DFTR 2013-03-25 23:44:25
Вот учебник о том, как сделать XSL Transformations в C# на MSDN:
http://support.microsoft.com/kb/307322/en-us/
и здесь, как писать файлы:
http://support.microsoft.com/kb/816149/en-us
как примечание стороны: если вы хотите сделать валидацию, вот еще один учебник (для DTD, XDR и XSD (= схема)):
http://support.microsoft.com/kb/307379/en-us/
Я добавил это, чтобы предоставить дополнительную информацию.
Основываясь на превосходном ответе Дарен, в обратите внимание, что этот код может быть значительно сокращен, используя соответствующий XslCompiledTransform.Transform overload:
var myXslTrans = new XslCompiledTransform();
myXslTrans.Load("stylesheet.xsl");
myXslTrans.Transform("source.xml", "result.html");
(Извините за постановку это как ответ, но поддержка code block
в комментариях является довольно ограниченным .)
В VB.NET, вам не нужно даже переменную:
With New XslCompiledTransform()
.Load("stylesheet.xsl")
.Transform("source.xml", "result.html")
End With
- 1. Применить таблицу стилей к таблице стилей?
- 2. Можно ли написать таблицу стилей XSLT 1.0, которая могла бы преобразовать таблицу стилей XSLT 2.0 в таблицу стилей XSLT 1.0?
- 3. ОТД ошибка безопасности, когда я применить таблицу стилей XSLT
- 4. Как применить таблицу стилей, отображаемую в ROR
- 5. XSLT удалить таблицу стилей источника
- 6. Включить таблицу стилей xslt на странице html
- 7. Как применить таблицу стилей для просмотра страницы
- 8. Как применить таблицу стилей с областью?
- 9. Добавление поддержки Xinclude в таблицу стилей XSLT
- 10. Использование параметра, переданного в таблицу стилей xslt
- 11. Как преобразовать XML в другое, используя таблицу стилей xslt?
- 12. Применить CSS-таблицу стилей к расширению Firefox
- 13. применить таблицу стилей для управления веб пользователя
- 14. Как вызвать преобразование xslt в таблицу стилей xsl
- 15. Как применить таблицу стилей на странице оставить в asp.net?
- 16. Как наследовать таблицу стилей?
- 17. Переключатель стилей XSLT
- 18. Можно добавить таблицу стилей XSLT в сериализованный XML-документ?
- 19. Как применить таблицу стилей только к дизайну HTML?
- 20. Как я могу применить таблицу стилей CSS к RSS-каналу
- 21. Как изменить таблицу стилей xslt с помощью java?
- 22. QT5: Как применить одну таблицу стилей к различным виджетам?
- 23. Как применить конкретную таблицу стилей зависит от разрешения экрана?
- 24. Применить таблицу стилей как для печати, так и для экрана
- 25. pyqt: Как применить таблицу стилей к пользовательскому виджету
- 26. XSLT mutliple таблицы стилей
- 27. Используйте таблицу стилей XSLT с XML в ASP.NET MVC3
- 28. XSLT: Консолидация таблиц стилей
- 29. Невозможно применить таблицу стилей в соответствии с разрешением экрана
- 30. Применить таблицу стилей к содержимому HTML в QTextEdit
На самом деле, я думаю, это отличный вопрос, и вы дали хороший ответ. Назначение для повторного открытия. – 2009-12-22 11:56:31
Я нашел Xslt запутанным, так что это помогло мне https://github.com/beto-rodriguez/SuperXml – 2015-08-26 18:02:18