[Javalist] XML feldolgozás SAX parserrel newline hogyan?

Freemail laja at freemail.hu
2018. Jan. 4., Cs, 13:19:02 UTC


Szia!

Mint már többen is írták, az XML-ben a sortörések és szóközök nem 
számítanak. Én azon csodálkozom, hogy egyáltalán van amit a parser 
visszaad...

De a legegyszerűbb megoldás talán az lenne, ha az XML-ben escapelve 
tennéd a szöveget, szóval sortörés helyett '\n', tabulátor helyett '\r', 
stb. Vagy ami neked tetszik. Ha a formátum nem támogatja az extra 
karaktereket, akkor escapelünk. Egyébként mit csinálsz a kacsacsőrökkel? 
És a többi jellel? Gondolom csak lekezeled azokat is... Meg mi van ha a 
szövegbe beírom hogy '#RArr;' ?

Minden formátumnak vannak megkötései. Az XML-nek is, nem is kevés. 
Nyilván ehhez alkalmazkodni kell, és nem a feldolgozót 
szétparaméterezni, mert abból előbb utóbb úgyis csak baj lesz... (Jön 
egy újabb verzió, és máris lehet hogy nem fog működni.)

Laja


2018.01.03. 19:54 keltezéssel, zamek42 írta:
> Sziasztok,
>
> Egy webes sw. vezérlését xml-ből szeretném megvalósítani, mert az 
> önellenőrző. Az xml-ben a felhasználó szövegeket akar elhelyezni, 
> amelyeket meg kell jelenítenem.
>
> Minden szép, de formázni is szeretné a szövegeket. Persze elég newline 
> és tab karakterekkel, tehát semmi extra. Gondoltam a sax parser majd 
> jól felolvassa és a textben a newline-okat becserélem <br/>-re a 
> tab-okat meg  -re és béke. Ami teljességgel érthetetlen, hogy 
> némelyik newline-t egyszerűen kihagyja a parser! Megnéztem, a 
> felolvasás közben a stringben _nincs_ benne a newline! A file-ban 
> persze ott van.
>
> Ilyenek vannak a file-ban:
>
> <bevezeto xml:space="preserve">Egy számítógépes kísérleti játék veszi 
> kezdetét a következőkben.
>         Játékpartnereid egy másik helyszínen foglalnak helyet, csak 
> számítógépen és a játékszabályok szerint tudsz érintkezni velük.
>         Kérjük, töltsd ki az alábbi adatokat, majd kattints a Start 
> gombra, hogy elolvasd a játék ismertetőjét és a kezdő instrukciókat.
> </bevezeto>
>
> Az első newline-t szépen behozza, de  a Kérjük előtt akármit csinálok 
> nincs newline, a pont után rögtön a Kérjük következik.
>
> Probáltam az xml:space-t is de ezt hibára hozza, az xsd-t én csináltam 
> hozzá, de a file elején igy próbáltam beállitani:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <trustme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>          xmlns:xml="http://www.w3.org/XML/1998/namespace"
>          xsi:noNamespaceSchemaLocation="./trustme.xsd">
>
> A SaxParser-ről azt írja az Oracle, hogy be lehet állítani a 
> parser.setPreserveWhiteSpace(true)-val a kezelést 
> (http://www.oracle.com/technetwork/articles/wang-whitespace-092897.html)
>
> de a java8-ban kapott SaxParser-nek nincs ilyenje. 
> (SaxParserFactory-bol newSaxParser-rel állítom elő).
>
> Hogy kell rábírni a parser-t, hogy hagyja békén a newline-okat a 
> node-ok szövegeiben?
>




További információk a(z) Javalist levelezőlistáról