applyStylesheet () в libxslt создает неработающий XHTML - PullRequest
0 голосов
/ 19 июня 2011

У меня есть файл данных XML, к которому я применяю таблицу стилей XSL, используя libxslt в Python.Все почти идеально, но каждый экземпляр <hr/> в файле XSL превращается в <hr> в выводе из unicode(applyStylesheet()).Это почти все, что я делаю:

style = libxslt.parseStylesheetDoc(libxml2.parseFile('template.xsl'))
xmlDoc = libxml2.parseFile('data.xml')
data = unicode(self.style.applyStylesheet(xmlDoc, None))
xmlDoc.freeDoc()

Я что-то не так делаю?Есть ли опция, которую я упускаю, чтобы сделать вывод действительным XHTML?

(Мой текущий план - добавить .replace('<hr>','<hr/>') в строку data =, чтобы просто заставить его работать, но, похоже, чтобудь лучше.)

1 Ответ

2 голосов
/ 19 июня 2011

Можем ли мы увидеть файл template.xsl? Содержит ли он тег <xsl:output/>? Для атрибута method этого тега установлено значение html?

Если это так, то libxsl автоматически удаляет все / из самозакрывающихся тегов.

Помните, что xml метод вывода не всегда выводит правильный html, обратитесь к xml, html или xhtml в : что является лучшим выбором? для получения дополнительной информации.

Как объяснено в ответе на связанный вопрос, лучшим выбором будет xhtml, но он поддерживается только xsl начиная с версии 2.

...