我试图在 PHP 中提取 XML 文档的结构而不扩展其中的实体。我知道实体通常在解析结构之前展开,忽略这意味着 XML 可能格式不正确,但我正在解析可能不包含正常 XML 文档标题的 XML 片段,因此将缺少实体声明。
理想情况下,我希望在找到未声明的实体时进行回调,以便我自己处理。XMLReader 和 xml_parser 似乎都无法关闭这些在解析过程中产生的错误。
有什么简单的方法可以做到这一点,或者我需要依靠我自己的解析器(这不会是一场灾难——我只需要解析几个标签,然后将所有文本保留在其中)。
这是官方 DocBook 指南第一章中一些 DocBook 的示例:
<chapter id="ch-gssgml">
<?dbhtml filename="ch01.html"?>
<chapterinfo>
<pubdate>$Date$</pubdate>
<releaseinfo>$Revision$</releaseinfo>
</chapterinfo>
<title>Getting Started<?lb?>with &SGML;/&XML;</title>
<para>
...
</para>
</chapter>
一旦看到 &SGML; ,试图解析它就会死掉。实体。