我有一个XML数据文件,我正在使用Python中的libxslt对其应用XSL样式表。事情几乎是完美的,但XSL文件中<hr/>
的每个实例都在unicode(applyStylesheet())
的输出中转换为<hr>
。这几乎就是我正在做的全部:
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 =
行以使其工作,但似乎应该有更好的方法。)
我们能看到template.xsl
文件吗?它包含<xsl:output/>
标签吗?此标记的method
属性是否设置为html
?
如果是,那么libxsl会自动从自关闭标记中剥离所有/
。
注意,xml
输出方法并不总是输出正确的html,请参阅<xsl:output>:哪个是更好的选择?了解更多信息。
正如链接问题的答案中所解释的,最好的选择是xhtml
,但它只受xsl从版本2开始的支持。