【问题标题】:libxslt's applyStylesheet() produces broken XHTMLlibxslt 的 applyStylesheet() 产生损坏的 XHTML
【发布时间】:2011-06-18 22:28:58
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    如果是,那么 libxsl 会自动从自闭标签中去除所有 /

    请注意,xml 输出方法并不总是输出正确的 html,请参阅xml, html or xhtml in <xsl:output>: Which is the better choice? 了解更多信息。

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

    【讨论】:

    • 是的,它有 &lt;xsl:output method="html"/&gt; 并将其更改为 &lt;xsl:output method="xhtml"/&gt; 解决了问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2021-11-27
    • 1970-01-01
    • 2021-05-03
    相关资源
    最近更新 更多