我的代码处于一种奇怪的状态。我正在编写一个 Apache 模块,需要在响应文档的 head 标记中添加注释(除了做一些其他不重要的事情)。
在我需要解析响应文档的地方,我将整个文档以 char * 缓冲区的形式存储在内存中(我使用的是 C)。所以我不太确定选择哪个 API?
据我所知,DOM 将在内存中创建自己的文档树表示形式。我可以通过释放较早的缓冲区来节省一些内存空间。
SAX:我真的不是很懂。
XPath- 正如我所搜索的那样,我相信它只能用于检索元素值。如果这是真的,那我就没用了。
给我一些见解,什么最适合当前情况?
最佳答案
就使用 XML(或 HTML)和 Apache 而言,如果您做的事情足够简单,例如在文档中的特定位置插入注释,那么使用 XSL 可能会更有效。这 native 处理 XML 样式的文档,HTML 和 XHTML 是其中的一个子集,无需将它们转换为其他格式以更轻松地与其他编程语言一起工作。另一方面,DOM 和 SAX 解析都以更易于处理的方式考虑 XML 文档,分别通过将其转换为特定语言的 native 对象,或注册您的代码可以处理的“事件” .
有关 XSL 的更多信息,请查看 http://www.w3schools.com/xsl/ .
一个额外的想法——如果你真的在做一些基本的事情,比如向头部添加注释,那么使用 SAX 解析比 DOM 解析更有效,因为简单的编辑不需要解析整个文档。它宁愿通过等待到达“head”元素的适当事件然后添加任何你想要的东西来更优雅地处理。
关于c - 决定是使用 DOM、SAX 还是 XPath 的因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3093196/