ここでStackoverflowに関するアドバイスをいただき、私の解析方法をSAXParserに変更しました。AndroidでのSAX XML解析のためにこの状況にコードを調整する方法
さまざまなチュートリアルのおかげで、私はそれを動作させることができました。そして、それはより速く動作すると言わなければなりません(これは私のアプリケーションにとって非常に重要です)。
しかし、問題は、私のXMLファイルが、私が見たチュートリアルのXMLの例よりも深くなってしまうことです。
この私のXMLファイルのサンプル:
<Message>
<Service>servicename</Service>
<Insurances>
<BreakdownInsurance>
<Name>Insurance name</Name>
<InsuranceNR/>
<LicenseNr/>
</BreakdownInsurance>
<CarDamageInsurance>
<Name>Insurance name 2</Name>
<InsuranceNR></InsuranceNR>
</CarDamageInsurance>
</Insurances>
<Personal>
<Name>my name</Name>
</Personal>
</Message>
私は名前などの個人情報を得ることができますが、私のコードは、保険で動作するようには思えません。私はこれがもっと一つのノードだからだと思う。
これは私が私のHandlerクラスで使用しているコードです:
@Override
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
currentElement = true;
if (localName.equals("Message")) {
geg = new GegevensXML();
}
}
@Override
public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
currentElement = false;
/********** Autopech **********/
if (localName.equals("Name")) {
geg.setAutopechMaatschappij(currentValue);
}
else if (localName.equals("InsuranceNR")){
geg.setAutopechPolis(currentValue);
}
else if (localName.equals("LicenseNr")){
geg.setAutopechKenteken(currentValue);
}
@Override
public void characters(char ch[], int start, int length) {
if (currentElement) {
currentValue = new String(ch, start, length);
currentElement = false;
}
は、どのように私はそれを調整する必要がありますか?
Thnxは私のために働いた! – Galip