【问题标题】:How do I get libxml2's SAX2 interface to let me see &lt; et al?如何获得 libxml2 的 SAX2 接口让我看到 < et al?
【发布时间】:2009-09-02 11:43:00
【问题描述】:

我有一些使用 libxml2 的 SAX2 接口的代码。我希望能够将 &lt; 变成

关于如何强制 libxml2 为基本的预定义实体调用我的参考回调有什么想法吗?

【问题讨论】:

    标签: xml sax libxml2


    【解决方案1】:

    你不能这样做。 LibXML 正在返回节点的字符串内容,即文字 &amp;amp;lt;。如果您希望您的字符串包含&amp;amp;lt;,那么您的原始XML 需要包含&amp;amp;lt;

    如果您想进一步避免这种情况(您应该只在输出到另一个 XML 文档时这样做),请尝试调用像 HTML::Entities 这样的模块来完成这项工作。

    【讨论】:

    • 但是 libxml2 SAX 文档指出,您可以选择通过引用回调传递实体引用而不更改。它会对某些实体而不是其他实体执行此操作,这似乎很奇怪。
    • XML 对待某些实体的方式与其他实体不同。规范提到必须立即扩展数字字符实体(xml.com/axml/target.html#sec-predefined-ent),但没有明确提及预定义实体;可能是分号错误的情况。另见xml.com/axml/target.html#sec-entexpand
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多