Как преобразовать XML во что-то еще, используя таблицу стилей xslt? - PullRequest
2 голосов
/ 29 января 2010

Как преобразовать XML во что-то еще, используя таблицу стилей xslt?

В C ++ C # PHP или ActionScript?

Например, у меня есть эта таблица стилей html2wiki xslt Я хочу отправить в мою программу мой XML (в данном случае файл HTML) ивернуть файл (в этом случае Wiki размечает текст)

Итак, как перевести один текстовый файл в другой текстовый файл, используя таблицу стилей XSLT на любом языке?

Ответы [ 7 ]

4 голосов
/ 29 января 2010

В Python libxml и libxslt - мой личный выбор для такого рода функций.


(Правка) Вот простой пример выполнения преобразования с использованием libxml и libxslt:

#!/usr/bin/python

import sys
import libxml2
import libxslt


def getXSLT(xsl_filename):
    # parse the stylesheet xml file into doc object
    styledoc = libxml2.parseFile(xsl_filename)

    # process the doc object as xslt
    style = libxslt.parseStylesheetDoc(styledoc)

    return style


if __name__ == '__main__':
    style = getXSLT("stylesheet.xsl")
    doc = libxml2.parseFile("data.xml")
    result = style.applyStylesheet(doc, None)

    print result
2 голосов
/ 29 января 2010

вот пример использования C и libxslt : http://xmlsoft.org/XSLT/tutorial/libxslttutorial.html

2 голосов
/ 29 января 2010

псевдокод:

Load SOURCE file as XML
Load STYLESHEET file as XML
Apply STYLESHEET to SOURCE, generating RESULT
Write RESULT out to file as XML
1 голос
/ 29 января 2010

В W3Schools есть мой любимый учебник по XSLT.

http://www.w3schools.com/xsl/

Удачи!

1 голос
/ 29 января 2010

в PHP взгляните на это

DomXsltStylesheet-> процесс
а также прочитайте последнюю заметку внизу с рабочим примером ...

1 голос
/ 29 января 2010

В .NET вы можете посмотреть эту статью . В C ++ вы можете использовать Xalan-C ++ . В Xalan-C ++ даже есть удобных примеров того, как его использовать.

0 голосов
/ 29 октября 2015

Правильная библиотека в Python теперь lxml. Пожалуйста, смотрите этот ответ в StackOverflow. Это аналогичный синтаксис, и у вас не возникнет проблем при его установке.

...