用VB 6.0编写XML

时间:2009-01-13 13:37:13

标签: xml logging vb6

我需要使用Visual Basic 6.0将错误日志写入XML文件。有一个简单的方法吗?

错误日志将包含错误号,来源,desc和时间戳。

谢谢, 杰夫

3 个答案:

答案 0 :(得分:4)

可能最好使用Microsoft的MSXML库来实现这一目标。

知识库中有一个示例:http://support.microsoft.com/kb/286817

答案 1 :(得分:1)

Microsoft MSXML库是您的第一个停靠点,但在您决定使用它之前需要考虑一些事项。

使用MSML库将错误消息附加到Xml将在每次打开时解析并加载Xml文件。随着Xml文件的增长,您会发现您的应用程序会慢慢爬行。

如果您可以“只是”将错误附加到文件的末尾,那将会很好,但是由于结束标记,这不是直接的,但可以完成。

如果您可以控制如何创建Xml文件,则可以通过将Xml文件拆分为两个,一个带有标题,一个带有xml的主体来解决此性能瓶。然后,您可以附加到正文文件的末尾(通过使用Xml编写器类,或者只是将文本附加到文件中)。

有关详细信息,请参阅Efficient Techniques for Modifying Large XML Files

但是,如果您将一个错误写入xml文件,并且下一个错误进入另一个Xml文件,则所有这些都是不必要的。在这种情况下,请使用MSXML

希望这有帮助。

答案 2 :(得分:0)

如果您只是在编写日志文件,我建议您连接一个这样的字符串:

Public Function GetXmlEntry(errNumber as Long, description as String) as String
  GetXmlEntry = "<entry><error-number>" & errNumber & "</error-number><description>" & description & "</description></entry>"
End Function

此处不需要使用XML库,甚至会不必要地损害性能(即没有优势)。

编辑)正如在评论中指出的那样,编写正确的XML至少需要两个额外的步骤才能进行单一条目:首先,需要正确地转义一些特殊字符(不应该那很难);第二,需要对所有XML文件使用正确的(=相同的)编码,与标题中的声明一致(对于这个我的VB-Fu是不够的 - 在参考中稍微挖掘将有所帮助)。