public static int getElementIdx (DOMElement elt) {
int count = 1;
for (DOMElement sib = (DOMElement) elt.getPreviousSibling();
sib != null;
sib = (DOMElement) sib.getPreviousSibling())
{
System.out.println("sib "
+ sib.getTagName () + " elt " + elt.getTagName ());
if (sib.ELEMENT_NODE == sib.getNodeType () &&
sib.getTagName () == elt.getTagName ()) {
System.out.println (count);
count++;
}
}
return count;
}
count始终返回1.但是,在for循环内,它返回递增的计数值。这真的很奇怪,我认为声明一个局部变量计数在for循环之外应该可以工作....
答案 0 :(得分:3)
count
用法很好 - 内部if语句可能永远不会成立。
罪魁祸首可能是
sib.getTagName() == elt.getTagName()
您需要使用equals()
检查字符串相等性:
sib.getTagName().equals(elt.getTagName())