Насколько хорош MSXML в XSLT? - PullRequest
2 голосов
/ 23 июня 2010

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

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

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

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

Ответы [ 3 ]

3 голосов
/ 23 июня 2010

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

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

2 голосов
/ 24 июня 2010

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

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

2 голосов
/ 23 июня 2010

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

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

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

...