我正在使用 TinyXML2 来解析类似于以下内容的 XML:
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE comp PUBLIC "-//JWS//DTD xyz//EN" "file:/documentum/xyz.dtd"
[<!ENTITY subject SYSTEM "dctm://he/abc">
]>
<comp>
...
</comp>
不幸的是,根据http://www.grinninglizard.com/tinyxmldocs/,看起来 TinyXML 不支持解析 DOCTYPE 标签,例如上面示例中的标签。我对 DTD 本身不感兴趣,只想解析 XML 的其余部分(从<comp>
标记开始)。实现这一目标的推荐或最佳方法是什么?我尝试检索以<comp>
(使用document.FirstChildElement("comp")
)为根的 XML 子树,但这种方法失败了,可能是因为 TinyXML 无法继续解析超出<!ENTITY
它似乎认为是错误的标记。关于如何使用 TinyXML 本身来实现这一点的任何想法(即最好不需要<!DOCTYPE ..>
在调用 TinyXML 之前删除使用正则表达式匹配的预处理步骤)?