2013-07-21 4 views
0

Я запрашивающий следующий XML-файл с сервера:Чтение XML - Как иметь дело с теми же тегами - SAX

<CreateAccount> 
<Customer>ApiTest</Customer> 
<CustomerLoginName>ApiTest</CustomerLoginName> 
<Result>Success</Result> 
<Reason>Country added</Reason> 
<Result>Success</Result> 
<Reason>Timezone added</Reason> 
<Result>Success</Result> 
<Reason>Request completely succeeded</Reason> 
</CreateAccount> 

я заинтересован в результате запроса и последней причине. Если появляется ошибка, я получаю этот XML:

<CreateAccount> 
<Customer>ApiTest</Customer> 
<Result>Failed</Result> 
<Reason>Request completely or partially failed.</Reason> 
</CreateAccount> 

Как обрабатывать те же теги? Я выполнял следующие инструкции: http://developer.android.com/training/basics/network-ops/xml.html

ответ

0

Вы должны ввести state machine.

У вас есть 3 состояния: Initial, Success и Failed. Вы начинаете с Initial, затем ждите, пока не получите тег Result. Вы переключаете состояние в соответствии с содержимым тега Result - выбирая либо Success, либо Failed.

Затем, когда вы обработки и тот же тег, такие как Reason вы можете справиться с этим по-разному в соответствии с которым государство вы находитесь в.

Если вы заинтересованы только в последней причине, сохранить сохранение причины в переменной состояния. Когда вы закончите синтаксический анализ, его значение будет последним.