[Javalist] XML feldolgozás SAX parserrel newline hogyan?
zamek
zamek at vili.mik.pte.hu
2018. Jan. 4., Cs, 07:23:40 UTC
Szia,
Koszi, ettol tartottam:(
On 01/03/2018 08:21 PM, Péter Böszörményi wrote:
>
> Nem lesz nagy segitseg, de ez a kod:
>
> import org.xml.sax.SAXException;
> import org.xml.sax.helpers.DefaultHandler;
>
> import javax.xml.parsers.SAXParser;
> import javax.xml.parsers.SAXParserFactory;
> import java.io.File;
>
> public class XmlSnadboxextends DefaultHandler {
>
> @Override public void characters(char[] ch,int start,int length)throws SAXException {
> System.out.println("["+new String(ch, start, length)+"]");
> }
>
> public static void main(String[] args)throws Exception {
> System.out.println(System.getProperty("java.version"));
> SAXParserFactory factory = SAXParserFactory.newInstance();
> SAXParser parser = factory.newSAXParser();
> System.out.println(parser.getClass());
> parser.parse(new File("a.xml"),new XmlSnadbox());
> }
> }
>
> ezzel az xml-el:
>
> <root>
> <bevezeto>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>
> </root>
> ezt a kimenetet produkalta:
>
> 1.8.0_151
> class com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl
> [
> ]
> [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.]
> [
> ]
> [
> ]
>
> Nekem megorzi a whitespaceket.
>
> On 2018-01-03 19:54, zamek42 wrote:
>> 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?
>>
>
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
--
thx,
----------------------------------
Zoltan Zidarics programmer
University of Pecs
H-7621 Pecs, Boszorkany u. 2. Hungary
E-Mail: zamek at vili.mik.pte.hu
----------------------------------
További információk a(z) Javalist levelezőlistáról