【发布时间】:2009-11-28 22:18:36
【问题描述】:
我正在用 C++ 构建一个符合和验证的 XML 解析器,并试图使其轻量级以用于袖珍电脑。
一开始我决定像 SAX 一样向我的解析器添加一些“事件”,通知元素、处理指令等。
此事件由构建 xml 的 DOM 树的派生类获取。
当我尝试主要处理实体(如果定义后,其中可以包含元素、pi 和 cmets)及其分辨率时,我的疑虑出现了。
例如,我可以创建一个 XMLEntityRef 类,该类引用在某些 XMLDocType 对象中定义的某些 XMLEntity,例如 .NET system.xml 解析器。
据我所知,在大多数情况下,应用程序需要知道一个元素、它的内容、它各自的属性和它们各自的值......只有字符串......它并不关心元素内容是否由 cdata 对象组成、实体引用和/或纯文本...这同样适用于属性值。
所以,我的问题如下:将出现的每个 xml 对象传递给应用程序并让它(或辅助类)构建,例如,通过连接文本并解析结果属性的值有什么好处实体引用?
如果我要进行投票,请回答:您的应用程序是否需要了解 cdata 标记以及它们在 xml 文件中的位置,或者您让事情变得简单……您想知道字符串中的一个元素,而不用担心它是如何构建的?
最好的问候, 毛罗·H·莱吉里
【问题讨论】:
标签: xml parsing xml-parsing