【发布时间】:2011-06-04 03:09:38
【问题描述】:
如果我要使用 XML 文件来存储一些信息,我是否需要一个读取/写入数据的 XML 解析器?我可以只使用字符串操作函数吗?为什么不呢?
【问题讨论】:
如果我要使用 XML 文件来存储一些信息,我是否需要一个读取/写入数据的 XML 解析器?我可以只使用字符串操作函数吗?为什么不呢?
【问题讨论】:
您可以使用字符串操作函数,因为这就是 XML 库最终使用的函数。 XML 文档只是一种特殊格式的长字符串。但是,除非您对 XML 有很多了解(以及什么是有效的 XML,什么是无效的 XML),否则现在使用 XML 解析器/序列化器将为您以后省去很多麻烦。 XML 存在细微差别(命名空间、转义序列等),这些细微差别会导致不知道如何正确处理它们的本土代码出现问题。当您处理完所有特殊情况时,您实际上已经编写了一个半途而废的 XML 解析器。
【讨论】:
不要...我再说一遍...不要手动解析或构建 XML。
在我的工作中,我们在不同供应商之间实现了很多接口。我无法告诉你有多少次我们一直在研究基于 xml 的接口并且遇到了某种转义编码/解码问题。当我连接到基于 xml 的服务时,我将运行的第一个测试是在输入中放入非法的 xml 字符。
你叫什么名字?:bob&"
!解析 XML 文档时出错!
我们遇到过很多次,如果我们的任何工程师检查类似:
xml = "" xml += "我们将认真考虑对接他们的浮动薪酬。一旦“someValue”包含非法字符,您就会被淘汰。然后你的代码开始看起来像这样:
xml = "" xml += "然后还是有什么东西在爆炸,所以天才工程师尝试:
xml = "" xml += "注意:这个过程实际上在我身上发生过两次,同时在一个界面上工作。
在不知不觉中,您通过网络的流最终看起来像
<rootnode>帮助总结:
请使用图书馆。 k thx 再见。
【讨论】:
我们可以使用tinyXml2,让我们的工作更轻松,只需要包含tinyxml2的头文件和cpp文件,你就差不多完成了解析和编写。请在
找到文档和手册【讨论】: