それで、私はここ数日 Sax をいじっていましたが、私が遭遇したこの問題を完全に処理することができませんでした。
次のxmlがあるとします
<PowerSystemRegions>
<PowerSystemRegion>
<RegionId>1</RegionId>
<RegionName>New England</RegionName>
<Status>Normal</Status>
<DateUpdated>2011-12-22T10:55:51.000-05:00</DateUpdated>
</PowerSystemRegion>
<PowerSystemRegion>
そして、最初に地域名がニューイングランドであることを確認してから、それに基づいてステータスを取得したかったのですが、メインから再度呼び出すため、次のqNameなどをロードするとは思いません.
これが私がこれまでに持っているものですが、私は完全に立ち往生しています:
public void startElement (String uri, String name, String qName, Attributes atts) {
boolean region = false;
boolean regionName = false;
boolean regionStatus = false;
if (qName.compareTo("RegionName") == 0) {
region = true;
if(atts.getValue(0).compareTo("New England") == 0){
}
if (currentStatus == null){
String cCond = atts.getValue(0);
currentStatus = cCond;
}
}
}
名前を比較するのは私の考えでした.3つのブール値がすべて設定されたら大丈夫です...しかし、文字列にqNameが1つしかないため、そのようには機能しないことに気付きました.