У меня есть способ распечатать только содержимое между XML-тегом открытия и закрытия. Я знаю, что мой счетчик глубины XML - проблема, но я не могу понять, куда ее поместить/исправить. Вот XML.Поиск закрывающего тега XML
<XMS>
<Object>
<Property>
<Value>1</Value>
</Property>
</Object>
</XMS>
Вот код Java ...
Boolean flag = false;
while(reader.hasNext()) {
eventType = reader.next();
if(getEventType(eventType) == "START_ELEMENT"
&& reader.getLocalName() == startTagName){
flag = true;
depth++;
System.out.println(reader.getLocalName() + " Depth = " + depth);
}
else if(getEventType(eventType) == "END_ELEMENT"
&& flag == true
&& (depth == 0)){
depth--;
System.out.println(reader.getLocalName() + " Depth = " + depth + " BIG END");
break;
}
else if(getEventType(eventType) == "START_ELEMENT"
&& flag == true){
depth++;
System.out.println(reader.getLocalName() + " Depth = " + depth);
}
else if(getEventType(eventType)== "END_ELEMENT"
&& flag == true){
depth--;
System.out.println(reader.getLocalName() + " Depth = " + depth + " END");
}
}
}
GetEventType просто возвращает правильный типСобытия (работает должным образом). И вот выход из консоли.
Object Depth = 1
Property Depth = 2
Value Depth = 3
Value Depth = 2 END
Property Depth = 1 END
Object Depth = 0 END
XMS Depth = -1 BIG END
Проблема заключается в том, что он должен заканчиваться на последнем объекте, когда depth = 0, и останавливается, прежде чем перейти на XMS depth = -1. Любой совет?
Вы нашли свой тент? –