Zdravím,

 Nejedná se o chybu, v dokumentaci (javadoc k metodě startElement, od
verze 1.5 výše) je napsáno:

atts - the attributes attached to the element. If there are no
attributes, it shall be an empty Attributes object. The value of this
object after startElement returns is undefined

 Ta poslední věta je klíčová: data z těch atributů si musíte "vytahat"
do nějaké vlastní struktury.

Kamil Podlešák

2010/9/1 Tomáš Procházka <[email protected]>:
> Zdravím.
>
> Setkal se už někdo s tím, že si standardní SAX parser v JDK 1.6 (konkrétně
> mám 1.6.0.18) vymýšlí neexistující hodnota atributů v XML?
>
> Konkrétně mám XML, které obsahuje kromě jiného asi 20 000 takovýchto
> elementů?
> <replace key="...">...</replace> například <replace
> key="unsubscribe">http://nekde.cz/neco.html</replace>
>
> V SAX handleru, bez jakéhokoliv knihovny, jen v samotné Javě.
>
> V handleru pak v metod
>
> public void startElement() si pak pouze uložím do třídních proměnných
> atributy tagu a nuluju StringBuffer
>
> this.value.setLength(0);
> this.attributes = attributes;
>
> v endElement() pak ukládám do mapy vždy hodnotu atributu key a obsah celého
> elementu, tedy:
>
> someMap.put(attributes.getValue("key"), value.toString());
>
> všechno funguje, až na to, že zhruba v 300 případech z těch 20 000 elementů
> se přečte úplně jiný klíč, přípustné hodnoty jsou jen unsubscribe a link a v
> těch 300 případech tam je něco jako "          <"
>
> Což je samozřejmě nepřípustné :-(
>
>
> Zkoušel jsem za
>
> this.attributes = attributes;
>
> přidat
>
> if (attributes.getValue(0) != null && !"link".equals(attributes.getValue(0))
> && !"unsubscribe".equals(attributes.getValue(0))) {
>   logger.error("-------- '" + attributes.getValue(0) + "'");
> }
>
> abych si zalogoval všechny případy kdy k tomu dojde a přestalo to dělat,
> téměř úplně
>
> Takové chování VM vůbec nechápu. Kdyby to dělalo jen na jednom stroji, tak
> řeknu, že je něco rozbité na něm. Jenže na ten problém jsme přišli na
> Linuxovém serveru a bez problémů jsem ho napodobil i na Windows stroji.
> navíc import ještě probíhá jen v jednom vlákně.
>
>
>
> Datum: 9:38:09    1. září 2010
> --
> ---------------------------------------------------------------------
>  Tomáš Procházka
>
>
>  E-mail: [email protected]
>     WWW: http://www.atomsoft.cz
>     ICQ: 87147320
> ---------------------------------------------------------------------

Odpovedet emailem