Memorandum für sich StAX verwendet entweder XMLStreamReader oder XMLEventReader zum Lesen von XML. Diesmal habe ich XMLStreamReader verwendet.
Hier ist hilfreich. Dies war ebenfalls hilfreich.
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 ich darauf steige, wenn ich einen Monat warte, wird die Flut nicht kommen, jetzt rudere ich(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>Shino (voller verrückter Licht), auf dem Gebiet von Kaiser Tenchi, oh, Sie können Ihren Ärmel so sehr schütteln und der Feldwächter kann Sie 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 Kano Shimayuki</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)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.</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)Lass es uns immer wieder ohne Unterbrechung sehen.</Bedeutung>
</Lied>
</rollen>
</Manyoshu>
import java.nio.file.Paths;
import java.io.FileInputStream;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamConstants;
public class StAXSample{
public static void main(String args[]) throws Exception {
XMLStreamReader reader = null;
try{
XMLInputFactory factory = XMLInputFactory.newInstance();
reader = factory.createXMLStreamReader(new FileInputStream(Paths.get("waka.xml").toFile()));
String tagName = null;
String content = null;
while(reader.hasNext()){
int eventType = reader.next();
switch(eventType){
case XMLStreamConstants.START_ELEMENT:
tagName = reader.getName().getLocalPart();
break;
case XMLStreamConstants.CHARACTERS:
content = reader.getText();
break;
case XMLStreamConstants.END_ELEMENT:
if(reader.getName().getLocalPart().equals("Lied")){
break;
}else if(reader.getName().getLocalPart().equals("rollen")){
break;
}else if(reader.getName().getLocalPart().equals("Manyoshu")){
break;
}
System.out.println(tagName + " : " + content);
if (reader.getName().getLocalPart().equals("Bedeutung")){
System.out.println("==================================================");
break;
}
default:
break;
}
}
}finally{
if(reader != null){
reader.close();
}
}
}
}
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 ich darauf steige, wenn ich einen Monat warte, wird die Flut nicht kommen, jetzt rudere ich(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:Shino (voller verrückter Licht), auf dem Gebiet von Kaiser Tenchi, oh, Sie können Ihren Ärmel so sehr schütteln und der Feldwächter kann Sie 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 Kano Shimayuki
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.
==================================================
import java.nio.file.Paths;
import java.io.FileInputStream;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLStreamConstants;
public class StAXSample{
public static void main(String args[]) throws Exception {
XMLStreamReader reader = null;
try{
//Generieren Sie XMLInputFactory
XMLInputFactory factory = XMLInputFactory.newInstance();
//Rufen Sie den Inhalt der Datei in XMLStreamReader ab
reader = factory.createXMLStreamReader(new FileInputStream(Paths.get("waka.xml").toFile()));
//Variablen für den Druck
String tagName = null;
String content = null;
reader = factory.createXMLStreamReader (neuer FileInputStream (Paths.get (" file.xml "). ToFile ()));
ist wie eine Menge, die durch diese Reihe von Prozeduren entschieden wird.
Um es kurz zu erklären
CreateXMLStreamReader
erstellt eine Instanz von XMLStreamReader, das Argument muss jedoch ein Stream sein. //Wenn es das nächste Ereignis gibt
while(reader.hasNext()){
//Rufen Sie den Typ des folgenden Ereignisses ab
int eventType = reader.next();
//Fallformel für jedes Ereignis
switch(eventType){
//Wenn es ein Start-Tag ist
case XMLStreamConstants.START_ELEMENT:
tagName = reader.getName().getLocalPart();
break;
//Wenn es ein Text wäre
case XMLStreamConstants.CHARACTERS:
content = reader.getText();
break;
//Wenn es ein End-Tag ist
case XMLStreamConstants.END_ELEMENT:
//Bedingte Verzweigung nach Elementnamen
if(reader.getName().getLocalPart().equals("Lied")){
break;
}else if(reader.getName().getLocalPart().equals("rollen")){
break;
}else if(reader.getName().getLocalPart().equals("Manyoshu")){
break;
}
System.out.println(tagName + " : " + content);
if (reader.getName().getLocalPart().equals("Bedeutung")){
System.out.println("==================================================");
break;
}
default:
break;
}
}
Grundsätzlich bestimmt die Methode hasNext
des XMLInputStreamReader-Objekts, ob es das nächste Ereignis gibt.
Wenn ja, der Ablauf des Lesens des nächsten Ereignisses mit der "nächsten" Methode.
}finally{
if(reader != null){
reader.close();
}
}
}
}
Recommended Posts