[Javalist] XML feldolgozás SAX parserrel newline hogyan?
Peter Verhas
peter at verhas.com
2018. Jan. 4., Cs, 12:28:59 UTC
Mert szívsz vele, mint a mellékelt példa mutatja. De ha ez neked így jó, az
a te dolgod.
Vadász és a medve.
Péter
On Thu, Jan 4, 2018 at 12:50 PM Péter Böszörményi <zmblevlist at gmail.com>
wrote:
> Megforditom a kerdest. Miert ne XML legyen a formatum?
>
> On 2018-01-04 12:32, Peter Verhas wrote:
>
> Egyértelműen CDATA.
>
> Garami Gábor megoldása tényleg undorító, és ez volt az utolsó eset.
>
> Amúgy meg miért XML a szerializációs formátum? Az nem egészen világos
> számomra, hogy mit jelent, hogy az XML önellenőrző. Maximum a parser
> ellenőrzi, és schema definiálhatja pluszban az alap szintaktika felett. No
> de schema verzérelt parserek vannak más formátumokhoz is. Így hirtelen JSON
> megy YAML jut eszembe, amik legalább ugyanannyira nem felhasználó barátok,
> mint az XML.
>
> Miért nem húzol fel egy bármilyen, akár PHP alapú open kontent menedzsment
> rendszert és olvasol az adatbázisából?
>
> Péter
>
> On Thu, Jan 4, 2018 at 9:45 AM Péter Böszörményi <zmblevlist at gmail.com>
> wrote:
>
>> Meg a sax parser implementacio is erdekes lehet.
>>
>>
>> On 2018-01-04 09:39, Péter Böszörményi wrote:
>> > 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
>> >>
>> >>
>> >
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>
>
>
> --
> Peter Verhas
> verhas@ skype, fb, google+, twitter, linkedin
> +41 79 154 20 95 <+41%2079%20154%2020%2095>
> 継続は力なり
>
>
> _______________________________________________
> Javalist mailing listJavalist at lists.javaforum.huhttp://lists.javaforum.hu/mailman/listinfo/javalist
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>
--
Peter Verhas
verhas@ skype, fb, google+, twitter, linkedin
+41 79 154 20 95
継続は力なり
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20180104/f09efa54/attachment.html>
További információk a(z) Javalist levelezőlistáról