Í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.