[Javalist] XML feldolgozás SAX parserrel newline hogyan?
Gábor Garami
gabor.garami at hron.me
2018. Jan. 3., Sze, 21:30:52 UTC
Nagyon undorito leszek, de meg ha ki is dobtok a listabol, akkor is
megkockaztatom:
Pattern p = Pattern.compile("<bevezeto .+?>(.*)<\/bevezeto>",
Pattern.MULTILINE);
Matcher m = p.matcher(xmlStr);
String orig = m.group(1);
String replaced = orig.replaceAll("\\n", "<br />");
newXml = xmlStr.replace(orig, replaced);
A kod pszeudokod, es tenyleg undorito. De ez egy legal megoldas lehet,
ugyanis az XML-ben normalisan nem kotelezo ertelmezni a newline-okat,
ha az nincs CDATA-ban (ezt elmondtak felettem is). Viszont, ha az
eloallito oldalon nem szeretnel CDATA-t, akkor az XML forrast
preprocesszalni kell, hogy XML-konform legyen.
Garami Gábor
E-mail: gabor.garami at hron.me
Tel: +36 20 235 9621
Skype: hron84
2018-01-03 20:50 GMT+01:00 István Viczián <viczian.istvan at gmail.com>:
> Szia,
>
> Ez nem parser hiba, ha jól emlékszem, xml így értelmezendő. Szerintem
> ilyenkor CDATA-ba kell tenned, és akkor nem fognak eltűnni a
> whitespace-ek.
> --
> Viczián István
>
>
> zamek42 <zamek42 at gmail.com> írta (2018. január 3. 19:54):
>> 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?
>>
>> --
>> thx
>> Zoltan (Zamek) Zidarics
>> programmer
>> email:zamek42 at gmail.com
>> Self Playing Pipe Organ Systems
>> http://replayorgan.eu
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
További információk a(z) Javalist levelezőlistáról