libxslt的applyStylesheet()生成破碎的XHTML

时间:2011-06-18 22:28:59

标签: python xhtml libxml2 xhtml-1.0-strict libxslt

我有一个XML数据文件,我正在使用Python中的libxslt应用XSL样式表。事情几乎是完美的,但是在<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 个答案:

答案 0 :(得分:2)

我们可以看到template.xsl文件吗?它是否包含<xsl:output/>标记?此标记的method属性是否设置为html

如果是,则libxsl会自动从自闭标记中删除所有/

请注意,xml输出方法并不总是输出正确的html,有关详细信息,请参阅xml, html or xhtml in <xsl:output>: Which is the better choice?

正如链接问题的答案中所解释的那样,最佳选择是xhtml,但只有xsl支持从版本2开始支持。