<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-2">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Nem lesz nagy segitseg, de ez a kod:</p>
<pre style="background-color:#ffffff;color:#000000;font-family:'DejaVu Sans Mono';font-size:11.3pt;"><span style="color:#000080;font-weight:bold;">import </span>org.xml.sax.SAXException;
<span style="color:#000080;font-weight:bold;">import </span>org.xml.sax.helpers.DefaultHandler;
<span style="color:#000080;font-weight:bold;">import </span>javax.xml.parsers.SAXParser;
<span style="color:#000080;font-weight:bold;">import </span>javax.xml.parsers.SAXParserFactory;
<span style="color:#000080;font-weight:bold;">import </span>java.io.File;
<span style="color:#000080;font-weight:bold;">public class </span>XmlSnadbox <span style="color:#000080;font-weight:bold;">extends </span>DefaultHandler {
<span style="color:#808000;">@Override
</span><span style="color:#808000;"> </span><span style="color:#000080;font-weight:bold;">public void </span>characters(<span style="color:#000080;font-weight:bold;">char</span>[] ch, <span style="color:#000080;font-weight:bold;">int </span>start, <span style="color:#000080;font-weight:bold;">int </span>length) <span style="color:#000080;font-weight:bold;">throws </span>SAXException {
System.<span style="color:#660e7a;font-weight:bold;font-style:italic;">out</span>.println(<span style="color:#008000;font-weight:bold;">"["</span>+<span style="color:#000080;font-weight:bold;">new </span>String(ch, start, length)+<span style="color:#008000;font-weight:bold;">"]"</span>);
}
<span style="color:#000080;font-weight:bold;">public static void </span>main(String[] args) <span style="color:#000080;font-weight:bold;">throws </span>Exception {
System.<span style="color:#660e7a;font-weight:bold;font-style:italic;">out</span>.println(System.<span style="font-style:italic;">getProperty</span>(<span style="color:#008000;font-weight:bold;">"java.version"</span>));
SAXParserFactory factory = SAXParserFactory.<span style="font-style:italic;">newInstance</span>();
SAXParser parser = factory.newSAXParser();
System.<span style="color:#660e7a;font-weight:bold;font-style:italic;">out</span>.println(parser.getClass());
parser.parse(<span style="color:#000080;font-weight:bold;">new </span>File(<span style="color:#008000;font-weight:bold;">"a.xml"</span>), <span style="color:#000080;font-weight:bold;">new </span>XmlSnadbox());
}
}
ezzel az xml-el:
<span style="background-color:#efefef;"><</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">root</span><span style="background-color:#efefef;">></span>
<span style="background-color:#efefef;"><</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">bevezeto</span><span style="background-color:#efefef;">></span>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.
<span style="background-color:#efefef;"></</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">bevezeto</span><span style="background-color:#efefef;">></span>
<span style="background-color:#efefef;"></</span><span style="color:#000080;background-color:#efefef;font-weight:bold;">root</span><span style="background-color:#efefef;">></span></pre>
ezt a kimenetet produkalta:<br>
<br>
1.8.0_151<br>
class com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl<br>
[<br>
]<br>
[Egy számítógépes kísérleti játék veszi kezdetét a következőkben.]<br>
[<br>
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.<br>
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.]<br>
[<br>
]<br>
[<br>
]<br>
<br>
Nekem megorzi a whitespaceket.<br>
<br>
<div class="moz-cite-prefix">On 2018-01-03 19:54, zamek42 wrote:<br>
</div>
<blockquote type="cite"
cite="mid:ab1d9297-c555-a60d-85e6-0340142584ea@gmail.com">Sziasztok,
<br>
<br>
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.
<br>
<br>
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.
<br>
<br>
Ilyenek vannak a file-ban:
<br>
<br>
<bevezeto xml:space="preserve">Egy számítógépes kísérleti
játék veszi kezdetét a következőkben.
<br>
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.
<br>
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.
<br>
</bevezeto>
<br>
<br>
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.
<br>
<br>
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:
<br>
<br>
<?xml version="1.0" encoding="utf-8" ?>
<br>
<trustme xmlns:xsi=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema-instance">"http://www.w3.org/2001/XMLSchema-instance"</a>
<br>
xmlns:xml=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/XML/1998/namespace">"http://www.w3.org/XML/1998/namespace"</a>
<br>
xsi:noNamespaceSchemaLocation="./trustme.xsd">
<br>
<br>
A SaxParser-ről azt írja az Oracle, hogy be lehet állítani a
parser.setPreserveWhiteSpace(true)-val a kezelést
(<a class="moz-txt-link-freetext" href="http://www.oracle.com/technetwork/articles/wang-whitespace-092897.html">http://www.oracle.com/technetwork/articles/wang-whitespace-092897.html</a>)
<br>
<br>
de a java8-ban kapott SaxParser-nek nincs ilyenje.
(SaxParserFactory-bol newSaxParser-rel állítom elő).
<br>
<br>
Hogy kell rábírni a parser-t, hogy hagyja békén a newline-okat a
node-ok szövegeiben?
<br>
<br>
</blockquote>
<br>
</body>
</html>