[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