Delphi TXMLDocument 慎用 doNodeAutoIndent

在使用TXMLDocument解析XML文档的时候,若希望保存之后的文档看起来漂亮点,在Options属性中增加doNodeAutoIndent即可。

 

但这样操作的文档,单纯读取和保存没有问题。可如果还会编辑,且编辑之后不保存直接调用其中元素的话,就需要注意了。

 

因为格式化增加了换行和空格等字符,在修改后的节点再次读取节点数量时,ChildNodes.Count会将这些多余出来的字符,也解析进去,目前比较好的办法是通过NodeType进行判断之后,再确认那个节点是有效节点,导致代码工作量增加非常大,而且一个不小心,就是读错。

 

当然,如果是读取出数据之后,不直接使用TXMLDocument直接记录结果,而是使用其他控件记录,保存时再一次性写入的话,是不会有这个问题的。

 

所以,综上所述,doNodeAutoIndent选项,需要慎用!

posted @ 2013-06-09 01:53  血舞&葬青衣  Views(608)  Comments(0Edit  收藏  举报