Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Karma

    félisten

    válasz WonderCSabo #3409 üzenetére

    Igen, én is ilyen SAX-okat szoktam látni. Tagváltozók, hogy éppen milyen tagen belül jár a parser, aztán a startElement, characters és endElement metódusokban összeturmixolva a mindenféle esetet lekezelő logika; bonyolultabb esetben egy stack még előfordul. Eztán elindítod a parsert az XML-re, végigdarálja, a callbackjeid meghívódnak és a legvégén örülsz, ha minden kitöltődött rendben.

    Ehhez képest a StAX fordítva működik. Amikor parsolsz, te lépteted folyamatosan a következő tokenre (iterátor), és az aktuális token típusától, nevétől, stb. eldöntheted, mit csinálsz - akár félbe is hagyhatod a feldolgozást.

    De ami fontosabb, a parsert szabadon megoszthatod több metódussal, amik egy adott elemet tudnak feldolgozni. Az előző példakód úgy nézne ki, hogy if fák helyett vannak parseFirstName, parseLastName, stb. metódusaid, amik a startElementtől az endElementig elvégzik a dolgukat.

    És eközben teljesítményben nem rosszabb. Itt egy jókis stackoverflow kérdés, amit reggel olvasgattam amikor a kérdésemet elkezdtem.

    Példát most nem tudok írni, mert dolgozom.

Új hozzászólás Aktív témák