[Javalist] XML feldolgozás SAX parserrel newline hogyan?
Péter Böszörményi
zmblevlist at gmail.com
2018. Jan. 4., Cs, 08:39:25 UTC
Ossze tudnal dobni egy minimal kodot, + xml-t (+ xsd), ami reprodukalja
a problemas mukodest?
On 2018-01-04 08:23, zamek wrote:
> 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
>
>
További információk a(z) Javalist levelezőlistáról