我有一个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 =
行以使其正常工作,但似乎应该有更好的方法。)
答案 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开始支持。