[ Son_Gohan @ 20.07.2006. 11:28 ] @
Naime, pravim u Javi neki konvertor koji prebacuje iz nekog shkmlj formata u xml format.
taj generisani xml sad moram da parsiram i da koristim u novom programu.

Problem mi nailazi u tome sto npr.
<ja nesto="sale & 213 < blablabla">
pravi problem.
U IE mi pri otvaranju kaze redom ove greske, no whitespace allowed ... (posle & znaka on ocekuje broj ili neki znak a ne whitespace), a drugi problem koji pravi je ako se znak < pojavljuje u stringu.
Meni su te greske totalno bezveze jer mi je logicno da se svi karakteri unutar navodnika ignorisu.

Sad kada sam pokusao da parsiram takav xml fajl (JAXP) prijavljuje mi SAXParseException pri parsiranju istog fajla sa tim znakovima, a sve mu je u redu kada nema tih karaktera.

Postoji li nacin nekako da kazem parseru da u stringu mogu biti ti znakovi i da ne pravi problem oko toga?
(Ti znakovi moraju da ostanu tu gde su)

Trenutno resenje mi je da regularnim izrazima prepoznam tagove i njegove elemente, ali je to lose resenje ako se ustanovi da postoji ikakav nacin da se ipak to uspe izparsirati preko Javinih XML Parsera.
[ tweeester @ 20.07.2006. 11:57 ] @
Pa u redu je sto parseri prijavljuju greske jer taj XML nije validan. Speciajni karateri (kao sto su & < > i sl.) moraju da budu "eskejpovani" kada se pojavljuju u vrednosti atributa ili u body-ju nekog taga, dakle & = &amp; < = &lt; etc...

Dakle, samo ispravi deo koji ti generise ovaj XML tako da <ja id="blac & < truc"> ustvari izgleda <ja id="blac &amp; &lt; truc">


[ Son_Gohan @ 20.07.2006. 12:31 ] @
puno hvala!!!

Odlicno mi odgovara takvo resenje
[ NikolaVeber @ 20.07.2006. 12:37 ] @
Probaj da koristis DOM biblioteke za "sklapanje" xml-a. Verovatno postoji opcija za eskejpovanje. Moguce cak i da se to automatski desava sa createTextNode() ili kako se god zove funkcija.
[ Dundjerski Nemanja @ 05.09.2006. 00:56 ] @
Malo starija tema, ali eto da preporucim i JDOM API za XML sa javom. Prilicno je lak i prati Javinu filozofiju oko toga kako stvari trebaju da se pozivaju i sl.
[ kaizen @ 05.09.2006. 08:24 ] @
Citat:
Dundjerski Nemanja: Prilicno je lak i prati Javinu filozofiju oko toga kako stvari trebaju da se pozivaju i sl.


Na šta konkretno misliš kada ovo kažeš?
[ Dundjerski Nemanja @ 05.09.2006. 21:58 ] @
Pa, NikolaVeber je (u ovom thread-u) preporucio koriscenje DOM-a -- nacin da XML fajlove posmatramo kao objekte. Problem DOM-a, ako se tako moze nazvati, je sto je on platformski i jezicki neutralan. DOM = isti API za vise programskih jezika. Tu uskace JDOM -- nije dzaba to "J" ispred. JDOM je bas napisan za java programere.

Odgovor: JDOM koristi javine tipove, preklapanje metoda, *javine kolekcije* (strava fora, metoda vraca listu, pa ides iteratorom kroz elemente, pa mi je kod ovako lepsi i laski), get i set metode podsecaju na javu totalno. Znaci ne moramo nista okolo da radimo.

Evo recimo poredjenja na koje sam sada naisao:

DOM:
Code:

Document doc = new org.apache.xerces.dom.DocumentImpl();
Element root = myDocument.createElement("myRootElement");
Text text = myDocument.createText("This is a root element");
root.appendChild(text);
myDocument.appendChild(root);


JDOM:
Code:

Element root = new Element("myRootElement");
Document doc = new Document(root);
root.setText("This is a root element");