当前位置:  开发笔记 > 编程语言 > 正文

XML解析问题

如何解决《XML解析问题》经验,为你挑选了1个好方法。

我有一个XML解析器崩溃不完整的XML数据.因此,提供给它的XML数据可能是以下之一:

twocontent

 ( the parser treats it as two root elements )

元素属性也被处理(虽然上面没有显示).

现在,问题是当我从套接字I中读取数据时,我会在片段中获取数据.例如:

one

content


因此,在将XML发送到解析器之前,我必须构造一个有效的XML并发送它.什么编程构造(如迭代,递归等)最适合这种情况.

我用C++编程.

请帮忙.



1> David Lichte..:

简短的回答:你做错了.

您的问题混淆了两个不同的问题:

    那是不是格式良好的XML数据的解析所有,即所谓的标记汤.

    示例:由不了解XML或具有糟糕编码实践的程序员生成的文件.

    这样说并不公平:一个格式不正确的XML文件根本就不是XML文档.每个正确的XML解析器都会拒绝它.理想情况下,您将努力纠正此数据的来源,并确保生成正确的XML.

    或者,使用标签汤解析器,即执行错误纠正的解析器.

    有用的标签汤解析器通常实际上是HTML解析器. 另一个答案已经指出了整洁.

    确保您了解解析器实际执行的更正步骤,因为没有可以修复XML的通用方法.特别是,整洁在"修复"数据方面非常积极,比真正的浏览器和HTML 5规范更具侵略性.

    从套接字解析XML,其中数据在流中逐块地到达.在这种情况下,XML文档可能被视为"无限",在看到根元素的最终结束标记之前很久就会将其作为显示处理.

    示例:XMPP是一个像这样工作的协议.

    解决方案是使用基于拉的解析器,例如libxml2中的XMLTextReader API.

    如果需要XML子元素的基于树的数据结构作为解析器,则可以为正在读取的每个此类元素构建树结构,而不是为整个文档构建树结构.

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有