使用递归查找java中XML文件中特定标记的出现情况
我需要返回给定标记的出现次数,例如,用户将提供指向xml文件的链接和要查找的标记的名称,它将返回该特定标记的出现次数。到目前为止,我的代码只适用于父节点的子节点,而我还需要检查子节点的所有子节点,我完全不知道如何迭代xml文件的所有元素。修改代码以正确使用递归。您需要始终递归,而不仅仅是在标记具有您要查找的名称时,因为子项仍然可能具有您要查找的名称。此外,还需要将递归调用的结果添加到sum中。大概是这样的:使用递归查找java中XML文件中特定标记的出现情况,java,xml,recursion,Java,Xml,Recursion,我需要返回给定标记的出现次数,例如,用户将提供指向xml文件的链接和要查找的标记的名称,它将返回该特定标记的出现次数。到目前为止,我的代码只适用于父节点的子节点,而我还需要检查子节点的所有子节点,我完全不知道如何迭代xml文件的所有元素。修改代码以正确使用递归。您需要始终递归,而不仅仅是在标记具有您要查找的名称时,因为子项仍然可能具有您要查找的名称。此外,还需要将递归调用的结果添加到sum中。大概是这样的: private static int tagCount(XMLTree xml, Str
private static int tagCount(XMLTree xml, String tag) {
assert xml != null : "Violation of: xml is not null";
assert tag != null : "Violation of: tag is not null";
int count = 0;
if (xml.isTag()) {
for (int i = 0; i < xml.numberOfChildren(); i++) {
if (xml.child(i).label().equals(tag)) {
count++;
}
count = count + tagCount(xml.child(i), tag);
}
}
return count;
}
private静态int标记计数(XMLTree-xml,字符串标记){
断言xml!=null:“违反:xml不是null”;
断言标记!=null:“违反:标记不为null”;
整数计数=0;
if(xml.isTag()){
for(int i=0;i
修改代码以正确使用递归。您需要始终递归,而不仅仅是在标记具有您要查找的名称时,因为子项仍然可能具有您要查找的名称。此外,还需要将递归调用的结果添加到sum中。大概是这样的:
private static int tagCount(XMLTree xml, String tag) {
assert xml != null : "Violation of: xml is not null";
assert tag != null : "Violation of: tag is not null";
int count = 0;
if (xml.isTag()) {
for (int i = 0; i < xml.numberOfChildren(); i++) {
if (xml.child(i).label().equals(tag)) {
count++;
}
count = count + tagCount(xml.child(i), tag);
}
}
return count;
}
private静态int标记计数(XMLTree-xml,字符串标记){
断言xml!=null:“违反:xml不是null”;
断言标记!=null:“违反:标记不为null”;
整数计数=0;
if(xml.isTag()){
for(int i=0;i
递归调用的结果也应添加到count中。只进行简单的基于XPath的搜索//childname如何?递归调用的结果也应添加到count中。只进行简单的基于XPath的搜索//childname如何?