franta-hg@2
|
1 |
Slouží k načítání souborů ve všelijakých syntaxích (json, ini atd.) tak,
|
franta-hg@2
|
2 |
aby s nimi následně šlo pracovat jako s XML.
|
franta-hg@2
|
3 |
|
franta-hg@2
|
4 |
SAXParserFactory → SAXParser → XMLReader
|
franta-hg@2
|
5 |
|
franta-hg@2
|
6 |
Nejdůležitější je XMLReader, tam se provádí vlastní načítání exotického souboru.
|
franta-hg@2
|
7 |
|
franta-hg@2
|
8 |
Aby se použila správná (naše) továrna, je potřeba udělat něco z následujícího:
|
franta-hg@2
|
9 |
– nastavit systémovou vlastnost „javax.xml.parsers.SAXParserFactory“
|
franta-hg@2
|
10 |
– použít Services API… viz JavaDoc k newInstance()
|
franta-hg@2
|
11 |
– předat název třídy továrny jako parametr newInstance(…, …);
|
franta-hg@2
|
12 |
|
franta-hg@2
|
13 |
Pak načítáme soubory, jako by to bylo XML:
|
franta-hg@2
|
14 |
SAXParserFactory továrna = SAXParserFactory.newInstance();
|
franta-hg@2
|
15 |
SAXParser parser = továrna.newSAXParser();
|
franta-hg@2
|
16 |
parser.parse(new File("data/vstup.json"), h);
|
franta-hg@2
|
17 |
|
franta-hg@2
|
18 |
Nikde sice nejsou žádné ostré závorky (např. JSON používá {} a []),
|
franta-hg@2
|
19 |
ale používáme stejné API a všechny navazující nástroje jako u opravdového XML.
|
franta-hg@2
|
20 |
|
franta-hg@2
|
21 |
Náš SAXParser používá SuperXMLReader, který rozhoduje, který konkrétní parser se použije.
|
franta-hg@2
|
22 |
|