Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测XML中的重复和循环_Xml_Recursion_Duplicates - Fatal编程技术网

检测XML中的重复和循环

检测XML中的重复和循环,xml,recursion,duplicates,Xml,Recursion,Duplicates,当以递归方式加载和解析XML文件时,我试图实现以下两个目标。 1.避免重复 2.避免循环 我的XML文件还包含其他XML文件名。我必须先加载主文件,然后在标记下解析文件名。解析完成后,我必须逐个加载和解析这些文件。在执行这些操作时,我必须递归地显示重复或循环的消息。请向我推荐解决此问题的算法/链接。保留一份您已处理的所有“内容”(您的案例中的XML文件名)的列表。然后,在处理每个项目之前,检查它是否已经在列表中,并相应地发出警告/错误 跟踪此列表的最佳方法(链表、数组、字典、哈希集等)取决于您使

当以递归方式加载和解析XML文件时,我试图实现以下两个目标。 1.避免重复 2.避免循环

我的XML文件还包含其他XML文件名。我必须先加载主文件,然后在标记下解析文件名。解析完成后,我必须逐个加载和解析这些文件。在执行这些操作时,我必须递归地显示重复或循环的消息。请向我推荐解决此问题的算法/链接。

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


跟踪此列表的最佳方法(链表、数组、字典、哈希集等)取决于您使用的编程/脚本语言以及您希望“可见项”列表包含的条目数。

谢谢。我正在使用VC++字典跟踪项目。检查后,我必须显示循环的错误和重复的警告。但在检查时,两者都仅检测为重复。是否有任何方法可以找到递归项。假设您以递归方式调用加载函数本身,请将相同的字典传递到递归调用中。然后在加载“Main.xml”时,将其添加到列表中,并调用函数加载“Child.xml”。“Child.xml”在加载后被添加到列表中,如果它再次尝试加载“Main.xml”,它会看到它已经在列表中。这有意义吗?