Írjon egy org.w3.dom.Dokumentumot egy fájlba
1. Áttekintés
Az XML kezelés fontos része az XML fájlok létrehozása, amelyeket mások is felhasználhatnak.
Ha XML-t kezelünk Java-ban, akkor gyakran előfordul a org.w3c.dom.Document hogy exportálnunk kell.
Ebben a gyors bemutatóban majd meglátjuk, hogyan kell írni a Dokumentum fájlba, mind in-line, mind szép formátumban.
2. Transzformátor használata
A nehéz emelő írás közben Dokumentums fájlokba van javax.xml.transform.Transformer.
2.1. A transzformátor létrehozása
Tehát kezdjük azzal, hogy megkapjuk a TransformerFactory. Ezt a gyárat fogjuk használni a transzformátor létrehozásához:
TransformerFactory transformerFactory = TransformerFactory.newInstance ()
A rendszer tulajdonság javax.xml.transform.TransformerFactory meghatározza, hogy melyik gyári megvalósítást hozza létre. Következésképpen ez a tulajdonság a TransformerFactory absztrakt osztály. De, ha nem definiáljuk ezt a tulajdonságot, akkor a transzformátor egyszerűen egy alapértelmezett platformot fog használni.
Ne feledje, hogy a Java 9 óta használhatjuk TransformerFactory. newDefaultInstance () a beépített rendszer-alapértelmezett megvalósítás létrehozásához.
Most, hogy megvan a gyár, hozzuk létre a Transzformátor:
Transzformátor transzformátor = transformerFactory.newTransformer ();
2.2. A forrás és az eredmény megadása
A Transzformátor forrást alakít eredménysé. Esetünkben a forrás az XML dokumentum, az eredmény pedig a kimeneti fájl.
Először adjuk meg az átalakítás forrását. Itt fogjuk használni a mi Dokumentum DOM forrás összeállításához:
DOMSource forrás = új DOMSource (dokumentum);
Vegye figyelembe, hogy a forrásnak nem feltétlenül a teljes dokumentumnak kell lennie. Amíg az XML jól formált, használhatjuk a dokumentum alfáját.
Ezután megadjuk, hogy a transzformátor hol írja be az átalakítás eredményét:
FileWriter író = new FileWriter (új fájl (fájlnév)); StreamResult eredmény = új StreamResult (író);
Itt azt mondjuk a transzformátornak, hogy az eredmény egy fájlfolyam. De bármilyen típusú felhasználhatunk java.io.író vagy java.io.OutputStream hogy létrehozza a StreamResult.Például használhatnánk a StringWriter hogy megalkossák a Húr hogy aztán naplózható.
2.3. Az XML fájl létrehozása
Végül elmondjuk a transzformátornak, hogy működjön a forrásobjektumon, és kimenjen az eredményobjektumra:
transzformátor.transzformáció (forrás, eredmény);
Ez végül létrehoz egy fájlt az XML dokumentum tartalmával:
3. A kimenet testreszabása
Testreszabhatjuk a fájlba írt XML-t számos kimeneti tulajdonság megadásával. Fedezzünk fel néhányat ezek közül.
3.1. A kimenet szép nyomtatása
Az alapértelmezett transzformátorunk egyszerűen mindent egyetlen sorra írt, amit nem olyan kellemes olvasni. Valójában még nehezebb lenne elolvasni, ha az XML nagy lenne.
A transzformátorunkat szép nyomtatásra konfigurálhatjuk a OutputKeys.INDENT tulajdonság a transzformátoron:
transformer.setOutputProperty (OutputKeys.INDENT, "igen"); transformer.setOutputProperty ("{// xml.apache.org/xslt}indent-amount", "4");
Figyelje meg, hogy a OutputKeys.INDENT, megadtuk a behúzás-összeg ingatlan itt. Ez helyesen behúzza a kimenetet, mivel alapértelmezés szerint a behúzás nulla szóköz.
A fenti tulajdonságok beállításával sokkal szebb kimenetet kapunk:
3.2. Az XML-nyilatkozat kihagyása
Előfordulhat, hogy ki akarjuk zárni az XML deklarációt.
A transzformátorunkat erre konfigurálhatjuk a OutputKeys.OMIT_XML_DECLARATION ingatlan:
transformer.setOutputProperty (OutputKeys.OMIT_XML_DECLARATION, "igen");
A transzformátorunk újbóli használatával kapjuk:
3.3. Egyéb kimeneti tulajdonságok
Tehát a szép nyomtatáson és az XML deklaráció elhagyásán kívül más módon is testre szabhatjuk a kimenetet:
- Az XML verzió használatával megadhatjuk OutputKeys.VERSION, az alapértelmezett érték „1.0”
- Használhatjuk az előnyben részesített karakterkódolást OutputKeys.ENCODING, az alapértelmezett “utf-8”
- Megadhatunk más tipikus deklarációs attribútumokat is, például RENDSZER, NYILVÁNOS, és STANDALONE.
4. Következtetés
Ebben az oktatóanyagban láttuk, hogyan lehet exportálni egy org.w3c.Dokumentum fájlba és a kimenet testreszabására.
És természetesen a hozzá tartozó forráskód elérhető a GitHubon.