[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