libxslt 的 applyStylesheet() 产生损坏的 XHTML
我有一个 XML 数据文件,我正在使用 Python 中的 libxslt 将 XSL 样式表应用于该文件。事情几乎是完美的,但是 XSL 文件中
的每个实例都被转换为
在 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('
附加到
','
')data =
行以使其正常工作,但似乎应该有更好的方法。)
I've got an XML data file that I'm applying an XSL stylesheet to, using libxslt in Python. Things are almost perfect, but every instance of <hr/>
in the XSL file is being turned into <hr>
in the output from unicode(applyStylesheet())
. This is pretty much all I'm doing:
style = libxslt.parseStylesheetDoc(libxml2.parseFile('template.xsl'))
xmlDoc = libxml2.parseFile('data.xml')
data = unicode(self.style.applyStylesheet(xmlDoc, None))
xmlDoc.freeDoc()
Am I doing something wrong? Is there an option that I'm missing to make the output valid XHTML?
(My current plan is to append .replace('<hr>','<hr/>')
to the data =
line to just make it work, but it seems like there should be a better way.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我们可以看到
template.xsl
文件吗?它是否包含
标记?该标签的method
属性是否设置为html
?如果是,则 libxsl 会自动从自结束标记中删除所有
/
。请注意,中的 xml、html 或 xhtml:哪个是更好的选择? 了解更多信息。
xml
输出方法并不总是输出正确的html,请参阅正如链接问题的答案中所解释的,最佳选择是
xhtml
,但仅从版本 2 开始 xsl 支持它。Can we see the
template.xsl
file? Does it contain the<xsl:output/>
tag? Is themethod
attribute of this tag set tohtml
?If it is, then libxsl automatically strips all
/
from self closing tags.Beware that,
xml
output method does not always output correct html, refer to xml, html or xhtml in <xsl:output>: Which is the better choice? for more information.As explained in the answer of the linked question, the best choice would be
xhtml
, but it is only supported by xsl starting at version 2.