2010-06-23 4 views
1

Я добавляю поддержку XSLT к одному из наших продуктов за последние несколько недель. Для этого я экспериментировал с использованием библиотек Microsoft MSXML для преобразования XML и XSL-файлов.Насколько хорош MSXML в XSLT?

Анализ в MSXML в основном работает, но я столкнулся с несколькими местами, где он не будет поддерживать определенные вещи, которые должен разрешить XSL. Это заставляет меня беспокоиться, что это не соответствует 100% стандартам, и что, возможно, использование этого может вызвать у нас проблемы в будущем. Например, похоже, что он не создает правильные стартовые теги, которые определяют стандарты, совместимые с HTML, и объявление новых объектов в начале документа не работает.

Есть ли у кого-нибудь опыт использования MSXML для XSLT, и у вас возникли проблемы с этим?

Или у каких-либо разработчиков окон есть предложения для альтернативных парсеров XSL, которые я могу использовать? Мне нужен способ взять XML-файл и XSL-файл и создать на их основе HTML-файл. (Функции должны быть вызваны из C или C++ в коде win32.)

ответ

3

Из того, что я видел с XML + XSLT и Internet Explorer (7), другими словами: MSXML ... As если вы ограничиваете себя XSLT 1.0, вы должны быть в основном прекрасными, за исключением того, что поддержка пространства имен может оставить желать лучшего. Однако это означает, что у вас нет многих хороших функций XPath ...

В качестве альтернативы вы можете использовать, например. libxml, который предлагает аналогичную функциональность; или вы можете что-то использовать по проектам Apache ...

2

Использование «Xerces» для кросс-платформенной платформы и выбрал «Xalan» для выполнения XSLT.

Там, где несколько незначительных отличий мы отметили между MSXML и Xerces. Нам пришлось немного изменить трансформацию между этими двигателями, MSXML казался менее стандартным. Если вы не беспокоитесь о перекрестной платформе, я бы попытался с ними обоими и посмотреть, какой из них лучше всего работает с вашим преобразованием.

Возможно, вам понравится также XML-редактор Oxygen, для нас у него была лучшая поддержка XSLT, где вы могли бы выбрать, какой движок XSLT использовать, хорошо, чтобы понять, каковы различия, но также отлично подходит для работы с так же, как и интерактивный движок для отладки, который вы будете использовать в своем конечном приложении.

2

В окнах я использовал как MSXML, так и Xerces/Xalan. Я больше склоняюсь к MSXML, потому что вы находитесь в среде Windows. Я использовал его успешно в ряде проектов, от настольных до веб-приложений, на протяжении многих лет.

Одно из предостережений заключается в том, что MSXML представляет собой API на основе COM. Поддержка XPath 2.0 в Xalan была начата, но остановилась. Есть также опасения, что будущее развитие Xalan вызывает сомнения. Также есть libxslt и XQilla, которые имеют поддержку Windows, но у меня нет опыта использования ни одного из них.

Смежные вопросы