2012-12-14 55 views
2

我想实现以下2件事情时,递归加载和解析XML文件。 1.避免重复 2.避免循环。检测重复和循环在XML

我的XML文件还包含其他XML文件名。我必须先加载主文件,然后解析标签下的文件名。一旦解析完成,我必须逐个加载和解析这些文件。虽然我这样做,我必须显示消息重复或循环递归。请给我建议算法/链接来解决这个问题。

回答

0

保留您已处理的所有“事物”(您的案例中的XML文件名)的列表。然后,在处理每个项目之前,检查它是否已经在列表中并相应地发出警告/错误。

跟踪这个问题的最好方法 - 链表,数组,字典,哈希集等 - 列表将取决于您正在使用的编程/脚本语言以及期望“看到的项目“包含的列表。

+0

谢谢。我使用VC++字典来跟踪items.After检查后,我必须显示错误的循环和警告重复。但是在检查时,两者都被检测为只有重复。有没有什么方法可以找到递归的项目。 – user1903135

+0

假设您递归调用加载函数本身,将相同的字典传递给递归调用。然后,当您加载“Main.xml”时,将其添加到列表并调用该函数以加载“Child.xml”。 “Child.xml”在加载后会被添加到列表中,如果它再次尝试加载“Main.xml”,它会看到它已经在列表中。那有意义吗? – DocMax

+0

是的。你是对的 – user1903135