[Javalist] XML feldolgozás SAX parserrel newline hogyan?
Peter Verhas
peter at verhas.com
2018. Jan. 4., Cs, 11:32:25 UTC
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
継続は力なり
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20180104/bb057dc8/attachment.html>
További információk a(z) Javalist levelezőlistáról