我有以下XML(为简单而愚蠢)
<object class="domain">
<property>
<value>2</value>
</property>
</object>
<object class="domain">
<property>
<value>10</value>
</property>
</object>
<object class="domain">
<object class="ID">
</object>
<object class="Extranet">
</object>
</object>
如您所见,我有几个名为object的XML标记。我想要做的是遍历XML(当前使用StAX)并在String的HashSet中将每个单独的对象保存为单独的String(除非在使用XML时有更好的替代方法)。我可以使用以下内容轻松找到开始标记...
case XMLStreamConstants.START_ELEMENT:
StartElement startElement = (StartElement) event;
QName elementStartName = startElement.getName();
if(elementStartName.getLocalPart() == "object"){
for (Iterator it = startElement.getAttributes(); it.hasNext();) {
Attribute attr = (Attribute) it.next();
String currentAttr = attr.getName().toString();
String attrValue = attr.getValue();
if(attrValue.contains("domain") && currentAttr == "class"){
System.out.println(attrValue);
}
}
}
break;
但是我不知道如何开始只读取两个<object class="domain">
之间的代码并将其存储为字符串,最后用XMLStreamConstants.END_ELEMENT
关闭。我知道这是非常具体的,缺少许多细节,但如果有人有任何高层次的想法,我们将不胜感激。