次の 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 を使用) を反復処理し、それぞれの個別のオブジェクトを個別の文字列として保存することです (XML を使用する場合により良い代替手段がない限り)、文字列の HashSet に保存します。次を使用して開始タグを簡単に見つけることができます...
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">
しかし、2 つの間に囲まれたそのコードのビットだけを読み取り、それを文字列として格納し、最終的に で閉じる方法がわかりませんXMLStreamConstants.END_ELEMENT
。これは非常に具体的で多くの詳細が欠けていることは承知していますが、誰かが高レベルのアイデアを持っていれば、それはありがたいです.