Memorandum für sich
Bibliothek zum Parsen von XML
Wir werden das XML japanischer Gedichte von der Website hier ausleihen.
<?xml version="1.0" encoding="UTF-8"?>
<Manyoshu>
<Band Nr="1">
<Lied>
<Songnummer>8</Songnummer>
<Original>Jukudatsu 尓 Seemann Sebu Noboru Tsukiwaiter Shiomo Kana Hinuma Heutzutage</Original>
<Autor>König Nakuda(Nukata no Ookimi)</Autor>
<lesen>
Jukudatsu(Komm zu)Zum Schiff(Funa)Wenn Sie einen Monat warten, scheint die Flut und rudert jetzt(Dies)Ausdrücken(ich)Dena
</lesen>
<Bild>image/m0008.jpg</Bild>
<Bedeutung>Jukudatsu(Komm zu)Dann, als ich darauf wartete, dass der Mond das Schiff verlässt, wurde die Flut endlich besser.
Jetzt ist die Zeit, Segel zu setzen.
</Bedeutung>
</Lied>
<Lied>
<Songnummer>20</Songnummer>
<Original>Akane Kusashi Takera Maeno starb Yukio Nomori Nomoriya Kimiyuki Sode Nunryu</Original>
<Autor>König Nakuda(Nukata no Ookimi)</Autor>
<lesen>
Krapp(Akane)Wie erwartet ist das Standardfeld für Shino gebunden(Shimeno)Geh, Feldwächter(Nomori)Schau nicht hin, du schüttelst deinen Ärmel
</lesen>
<Bild>image/m0020.jpg</Bild>
<Bedeutung>(Voller verrückter Licht) Shino, auf dem Gebiet von Kaiser Tenchi, oh, du hast deinen Ärmel so sehr geschüttelt,
Der Feldwächter kann es sehen.
</Bedeutung>
</Lied>
<Lied>
<Songnummer>23</Songnummer>
<Original>Uchima 乎 Mao Ou Shiramizuro Yuya Schießen usw. Kagari Shimano Perlenalgen Masu</Original>
<Autor>Autor不明</Autor>
<lesen>
Hanf(Damit), Als ein(Mino)König von(Ohokimi), Seemann(Ama)Nareya, Ira(Irago)Insel, Tamamo(Tamamo)Mähen
</lesen>
<Bild>image/m0023.jpg</Bild>
<Bedeutung>Asagu(Mino)König von(Ohokimi)Sama ist ein Seemann(Ama)ist es,(Nein, hast du nicht)Sie nehmen die Algen von der Insel Ira</Bedeutung>
</Lied>
<Lied>
<Songnummer>24</Songnummer>
<Original>Sora 蝉 yuki Leben 乎 Somi Namiyosho Hama Ira Yukino Shimayuki Tamamo 苅 Essen</Original>
<Autor>Autor不明</Autor>
<lesen>
Deprimiert, verschontes Leben, nass von Wellen, Ira(Irago)Insel, Tamamo(Tamamo)Mähen(Oder)Essen(Ist)Mu
</lesen>
<Bild>image/m0024.jpg</Bild>
<Bedeutung>Ira, während sie von den Wellen nass wird(Irago)Nimm die Algen von der Insel und iss sie ...<br />Asagu(Mino)König von(Ohokimi)Es ist ein Lied, das die Menschen auf der Insel sangen, als sie das Lied hörten, das sie sangen, als sie auf die Insel Ira geschickt wurden.</Bedeutung>
</Lied>
<Lied>
<Songnummer>28</Songnummer>
<Original>Frühlingsmetapher Yoshiyuki Natsurai Shiro Myo Nou Yui Tennoka Raiyama</Original>
<Autor>Kaiser Mochito(Jito Tenno)</Autor>
<lesen>
Es ist Frühling und der Sommer kommt(Shirotae)Kleidung und Himmel trocknen(Regen)Duftberg(Kaguyama)
</lesen>
<Bild>image/m0028.jpg</Bild>
<Bedeutung>Es scheint, dass der Frühling vergangen ist und der Sommer gekommen ist. Weißes Geheimnis(Shirotae)Die Kleider sind Kakuyama(Kaguyama)Ich kann es sehen.</Bedeutung>
</Lied>
<Lied>
<Songnummer>37</Songnummer>
<Original>Satoshi Kazumi Yoshino Kein Kawayuki Tokiruno Absolut Mukyu Rache</Original>
<Autor>Kakimoto Maro(Hitomaro unter der Auster)</Autor>
<lesen>
Sie können es sehen, aber Sie werden nie müde davon.(Tokoname)Ich schaue immer wieder auf die Kante
</lesen>
<Bild>image/m0037.jpg</Bild>
<Bedeutung>Egal wie oft Sie es betrachten, Sie werden nie müde davon.(Tokoname)Lassen Sie es uns immer und immer wieder ohne Unterbrechung sehen.</Bedeutung>
</Lied>
</rollen>
</Manyoshu>
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DOMSample{
public static void main(String[] args) throws Exception {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse("waka.xml");
Element root = document.getDocumentElement();
System.out.println("Root element is "+root.getNodeName());
NodeList childNodeList = root.getChildNodes();
for(int child_i = 0; child_i < childNodeList.getLength(); child_i++){
Node childNode = childNodeList.item(child_i);
if(childNode.getNodeType() == Node.ELEMENT_NODE){
System.out.println("Its child element is "+childNode.getNodeName());
System.out.println("");
NodeList grandchildNodeList = childNode.getChildNodes();
for(int grachild_i = 0; grachild_i < grandchildNodeList.getLength(); grachild_i++){
if(grandchildNodeList.item(grachild_i).getNodeType() == Node.ELEMENT_NODE){
NodeList gre_grandchildNodeList = grandchildNodeList.item(grachild_i).getChildNodes();
for(int gre_grachild_i = 0; gre_grachild_i < gre_grandchildNodeList.getLength(); gre_grachild_i++){
Node node = gre_grandchildNodeList.item(gre_grachild_i);
if(node.getNodeType() == Node.ELEMENT_NODE){
System.out.println(node.getNodeName() + " : " + node.getTextContent());
}
}
System.out.println("--------------------------------------------------------");
}
}
}
}
}
}
Ausgabeergebnis
Wurzelelement ist Manyoshu
Das untergeordnete Element ist Volume
Songnummer: 8
Original:Jukudatsu 尓 Seemann Sebu Noboru Tsukiwaiter Shiomo Kana Hinuma Heutzutage
Autor:König Nakuda(Nukata no Ookimi)
lesen:
Jukudatsu(Komm zu)Zum Schiff(Funa)Wenn Sie einen Monat warten, scheint die Flut und rudert jetzt(Dies)Ausdrücken(ich)Dena
Bild: image/m0008.jpg
Bedeutung:Jukudatsu(Komm zu)Dann, als ich darauf wartete, dass der Mond das Schiff verlässt, wurde die Flut endlich besser.
Jetzt ist die Zeit, Segel zu setzen.
--------------------------------------------------------
Songnummer: 20
Original:Akane Kusashi Takera Maeno starb Yukio Nomori Nomoriya Kimiyuki Sode Nunryu
Autor:König Nakuda(Nukata no Ookimi)
lesen:
Krapp(Akane)Wie erwartet ist das Standardfeld für Shino gebunden(Shimeno)Geh, Feldwächter(Nomori)Schau nicht hin, du schüttelst deinen Ärmel
Bild: image/m0020.jpg
Bedeutung:(Voller verrückter Licht) Shino, auf dem Gebiet von Kaiser Tenchi, oh, du hast deinen Ärmel so sehr geschüttelt,
Der Feldwächter kann es sehen.
--------------------------------------------------------
Songnummer: 23
Original:Uchima 乎 Mao Ou Shiramizuro Yuya Schießen usw. Kagari Shimano Perlenalgen Masu
Autor:Unbekannter Autor
lesen:
Hanf(Damit), Als ein(Mino)König von(Ohokimi), Seemann(Ama)Nareya, Ira(Irago)Insel, Tamamo(Tamamo)Mähen
Bild: image/m0023.jpg
Bedeutung:Asagu(Mino)König von(Ohokimi)Sama ist ein Seemann(Ama)ist es,(Nein, hast du nicht)Sie nehmen die Algen von der Insel Ira
--------------------------------------------------------
Songnummer: 24
Original:Sora 蝉 yuki Leben 乎 Somi Namiyosho Hama Ira Yukino Shimayuki Tamamo 苅 Essen
Autor:Unbekannter Autor
lesen:
Deprimiert, verschontes Leben, nass von Wellen, Ira(Irago)Insel, Tamamo(Tamamo)Mähen(Oder)Essen(Ist)Mu
Bild: image/m0024.jpg
Bedeutung:Ira, während sie von den Wellen nass wird(Irago)Ich nehme die Algen von der Insel und esse sie ...(Mino)König von(Ohokimi)Es ist ein Lied, das die Menschen auf der Insel sangen, als sie das Lied hörten, das sie sangen, als sie auf die Insel Ira geschickt wurden.
--------------------------------------------------------
Songnummer: 28
Original:Frühlingsmetapher Yoshiyuki Natsurai Shiro Myo Nou Yui Tennoka Raiyama
Autor:Kaiser Mochito(Jito Tenno)
lesen:
Es ist Frühling und der Sommer kommt(Shirotae)Kleidung und Himmel trocknen(Regen)Duftberg(Kaguyama)
Bild: image/m0028.jpg
Bedeutung:Es scheint, dass der Frühling vergangen ist und der Sommer gekommen ist. Weißes Geheimnis(Shirotae)Die Kleider sind Kakuyama(Kaguyama)Ich kann es sehen.
--------------------------------------------------------
Songnummer: 37
Original:Satoshi Kazumi Yoshino Kein Kawayuki Tokiruno Absolut Mukyu Rache
Autor:Kakimoto Maro(Hitomaro unter der Auster)
lesen:
Sie können es sehen, aber Sie werden nie müde davon.(Tokoname)Ich schaue immer wieder auf die Kante
Bild: image/m0037.jpg
Bedeutung:Egal wie oft Sie es betrachten, Sie werden nie müde davon.(Tokoname)Lass es uns immer wieder ohne Unterbrechung sehen.
--------------------------------------------------------
//Bibliothek zum Lesen von Dokumenten
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
//Bibliothek zur Dokumentenmanipulation
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class DOMSample{
public static void main(String[] args) throws Exception{
//Dokument lesen
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse("waka.xml")
Es fühlt sich hier wie ein Standardsatz an
//Holen Sie sich root-Element
Element root = document.getDocumentElement();
//Zeigen Sie den Knotennamen des Stammknotens an
System.out.println(root.getNodeName());
Es scheint, dass Sie das oberste Ebenenelement mit der Methode "getDocumentElement" von der aktuellen Position abrufen können. Ermitteln Sie dann den Elementnamen des Knotens, der mit der Methode "getNodeName" ermittelt wurde.
Übrigens können Sie den Attributwert auch mit der Methode "getAttribute ()" abrufen.
//Holen Sie sich untergeordnete Knoten
NodeList childNodeList = root.getChildNodes();
//Schleife auf dem erfassten untergeordneten Knoten
for(int child_i = 0; child_i < childNodeList.getLength(); child_i++){
Node childNode = childNodeList.item(child_i);
//Wenn der untergeordnete Knoten ein Elementknoten ist
if(childNode.getNodeType() == Node.ELEMENT_NODE){
//Ruft den Knotennamen eines untergeordneten Knotens ab
System.out.println("Its child element is "+childNode.getNodeName());
System.out.println("");
Rufen Sie die untergeordneten Elemente dieses Elements mit der Methode "getChildNodes" ab.
Bestimmen Sie den Typ des Knotens mit getNodeType
Hier finden Sie Knotentypen (https://www.techscore.com/tech/Java/JavaSE/DOM/2-3/).
//Holen Sie sich Enkelknoten
NodeList grandchildNodeList = childNode.getChildNodes();
//Schleife innerhalb des Enkelknotens
for(int grachild_i = 0; grachild_i < grandchildNodeList.getLength(); grachild_i++){
//Wenn der Enkelknoten ein Elementknoten ist
if(grandchildNodeList.item(grachild_i).getNodeType()==Node.ELEMENT_NODE){
//Holen Sie sich Urenkel Knoten von Enkel Knoten
NodeList gre_grandchildNodeList = grandchildNodeList.item(grachild_i).getChildNodes();
//Schleife auf Urenkelknoten
for(int gre_grachild_i = 0; gre_grachild_i < gre_grandchildNodeList.getLength(); gre_grachild_i++){
Node node = gre_grandchildNodeList.item(gre_grachild_i);
//Wenn der Knoten ein Elementknoten ist, zeigen Sie den Knotennamen und den Inhalt an
if(node.getNodeType() == Node.ELEMENT_NODE){
System.out.println(node.getNodeName() + " : " + node.getTextContent());
}
}
System.out.println("--------------------------------------------------------");
Sie können den Inhalt des Elements mit der Methode "getTextContent" anzeigen.
Recommended Posts