Dieser Artikel beschreibt die Methode des Java -Betriebs von XML. Teilen Sie es für Ihre Referenz. Die Details sind wie folgt:
Der Java -Code lautet wie folgt:
Die Codekopie lautet wie folgt: Importieren Sie java.io.file;
importieren java.io.filenotfoundException;
importieren java.io.fileoutputStream;
importieren java.io.ioException;
import org.w3c.dom.*;
import org.xml.sax.saxexception;
importieren javax.xml.parsers.*;
importieren javax.xml.transform.*;
import javax.xml.transform.dom.domSource;
importieren javax.xml.transform.stream.*;
importieren javax.xml.xpath.*;
öffentliche Klassen -Test {
public static void main (String [] args) {
DocumentBuilderFactory Factory = DocumentBuilderFactory.Newinstance ();
Element thebook = null, theelem = null, root = null;
versuchen {
factory.SetigningElementContentwhitespace (true);
DocumentBuilder db = factory.newdocumentBuilder ();
Dokument xmldoc = db.parse (neue Datei ("test1.xml"));
root = xmldoc.getDocumentElement ();
Thebook = (Element) SelectSingLenode ("/books/book [name = 'harry potter']", root);
System.out.println ("--- Suche nach" Harry Potter "----");
Element namenode = (Element) thebook.getElementsByTagName ("Preis"). Artikel (0);
String name = namenode.getFirstchild (). GetNodeValue ();
System.out.println (Name);
Ausgabe (TheBook);
System.out.println ("======================== SELEGSINGENODE (books/book [name = 'harry potter'], root) == ============= ====== ");
// ---- Beginnen Sie mit einem neuen Buch ----
thebook = xmldoc.createelement ("book");
dasElem = xmldoc.createelement ("Name");
TheLem.SetTextContent ("neues Buch");
TheBook.AppendChild (Theelem);
das Elem = xmldoc.createelement ("Preis");
das Elem.SetTextContent ("20");
TheBook.AppendChild (Theelem);
das Elem = xmldoc.createelement ("memo");
das Elem.SetTextContent ("neues Buch ist besser.");
TheBook.AppendChild (Theelem);
Root.AppendChild (TheBook);
System.out.println ("--- Beginnen Sie mit einem neuen Buch ----");
Ausgabe (xmldoc);
System.out.println ("=============================");
// ---- Erstellen Sie ein neues Buch und vervollständigen Sie es ---
// --- Folgende Änderungen an "Harry Potter". ------
// ---- Suchen Sie nach "Harry Potter" ---
// ---- Ändern Sie den Preis dieses Buches zu dieser Zeit -----
TheBook.GetElementsByTagName ("Preis"). Artikel (0) .setTextContent ("15"); // GetElementsByTagName gibt Nodelist zurück, sodass Sie mit Artikel (0) Schritt halten müssen. Darüber hinaus entspricht GetElementsByTagName ("Preis") von ".//price" von XPath.
System.out.println ("--- modifizieren Sie den Preis dieses Buches zu diesem Zeitpunkt ----");
Ausgabe (TheBook);
// ----- Außerdem möchte ich eine Attribut-ID hinzufügen, der Wert ist b01 ---
TheBook.SetAttribute ("ID", "B01");
System.out.println ("--- Außerdem möchten Sie eine Attribut-ID hinzufügen, der Wert ist b01 ----");
Ausgabe (TheBook);
// --- Die Modifikation von "Harry Potter" wurde abgeschlossen. ------
// ----- Verwenden Sie das ID-Attribut, um das Buch "Romantik der drei Königreiche" ---
Thebook = (Element) SelectSingLenode ("/books/book [@id = 'b02']", root);
System.out.println ("--- Verwenden Sie das ID-Attribut, um das Buch" Romantik der drei Königreiche "zu löschen ----");
Ausgabe (TheBook);
TheBook.getParentNode (). Removechild (TheBook);
System.out.println ("--- Die gelöschte XML ----");
Ausgabe (xmldoc);
// --- Löschen Sie alle Bücher mit Preisen unter 10 ---
Nodelist sonbooks = selectnodes ("/books/book [price <10]", root);
System.out.println ("--- Alle Bücher mit Preisen unter 10 ---");
System.out.println ("--- Die Bücher, die den Bedingungen erfüllen, umfassen"+sonbooks.getLength ()+"Bücher. ---");
für (int i = 0; i <sonbooks.getLength (); i ++) {
sonbooks.item (i) .getParentNode (). removechild (sonbooks.item (i));
}
Ausgabe (xmldoc);
Savexml ("test1_edited.xml", xmldoc);
} catch (ParserConfigurationException e) {
E. printstacktrace ();
} catch (saxException e) {
E. printstacktrace ();
} catch (ioException e) {
E. printstacktrace ();
}
}
public static void Output (Knotenknoten) {// XML -Zeichenfolge des Knotens an die Konsole ausgibt
TransformerFactory Transfactory = TransformerFactory.Newinstance ();
versuchen {
Transformator Transformator = transformFactory.newtransformer ();
Transformator.SetoutputProperty ("Codierung", "GB2312");
Transformator.SetoutputProperty ("Eingeordnet", "Ja");
DomSource Source = new DomSource ();
Source.SetNode (Knoten);
StreamResult result = new StreamResult ();
result.setoutputStream (System.out);
Transformator.transform (Quelle, Ergebnis);
} catch (TransformerConfigurationException e) {
E. printstacktrace ();
} catch (transformeException e) {
E. printstacktrace ();
}
}
Der öffentliche statische Knoten wähltssinglenode (String -Expression, Objektquelle) {// Finden Sie den Knoten und geben Sie den ersten Knoten zurück, der die Kriterien erfüllt
Knotenergebnis = null;
XPathFactory xPathFactory = xPathFactory.Newinstance ();
Xpath xpath = xpathfactory.newXPath ();
versuchen {
result = (node) xpath.egaluate (Express, Quelle, xPathConstants.node);
} catch (xpathexpressionException e) {
E. printstacktrace ();
}
Rückgabeergebnis;
}
public static nodelist selectNodes (String Express, Objektquelle) {// Suchen Sie nach Knoten und geben Sie die Menge der Knoten zurück, die die Kriterien erfüllen.
Nodelist result = null;
XPathFactory xPathFactory = xPathFactory.Newinstance ();
Xpath xpath = xpathfactory.newXPath ();
versuchen {
result = (nodelist) xPath.Valuate (Express, Quelle, xPathConstants.nodeset);
} catch (xpathexpressionException e) {
E. printstacktrace ();
}
Rückgabeergebnis;
}
public static void Savexml (String -Dateiname, Dokument docum) {// Ausgabedokument zur Datei ausgeben
TransformerFactory Transfactory = TransformerFactory.Newinstance ();
versuchen {
Transformator Transformator = transformFactory.newtransformer ();
Transformator.SetoutputProperty ("Eingeordnet", "Ja");
DomSource Source = new DomSource ();
Source.SetNode (DOC);
StreamResult result = new StreamResult ();
result.setoutputStream (neuer FileOutputStream (Dateiname));
Transformator.transform (Quelle, Ergebnis);
} catch (TransformerConfigurationException e) {
E. printstacktrace ();
} catch (transformeException e) {
E. printstacktrace ();
} catch (FilenotFoundException e) {
E. printstacktrace ();
}
}
}
Die XML -Datei lautet wie folgt:
Die Codekopie lautet wie folgt: <? XML Version = "1.0" coding = "gbk"?>
<Books>
<Book>
<Name> Harry Potter </name>
<Price> 10 </price>
<Memo> Dies ist ein sehr gutes Buch. </memo>
</book>
<book id = "b02">
<Name> Romantik der drei Königreiche </name>
<Price> 10 </price>
<Memo> Eine der vier großen Klassiker. </memo>
</book>
<book id = "b03">
<Name> Wasserrand </name>
<price> 6 </price>
<Memo> Eine der vier großen Klassiker. </memo>
</book>
<book id = "b04">
<Name> Rotes Gebäude </name>
<price> 5 </price>
<Memo> Eine der vier großen Klassiker. </memo>
</book>
</books>
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.