Ordet Wide Web Consortium ( W3C) , som publicerar XML-standarden , har lämnat ett antal klasser i Java standarden biblioteket för att låta Java-applikationer för att hantera XML- filer med hjälp av ett Document Object Model (DOM ) gränssnitt . Dessa klasser gör det möjligt för Java -utvecklare att läsa , tolka och ändra XML- dokument inom sina ansökningar
Du behöver : . .
Java
1
Skapa en fil som heter " test. xml "i en textredigerare och spara den till enhet C: . Klistra in följande exempel på XML- databas till det :
Alice Svensson
gäst
Bill Jameson
gäst ;
Som ni ser är detta en användardatabas som innehåller två användare , Alice Smith och Bill Jameson , som innehar . gästkonton
dock vissa ändringar behöver göras : Alice har gift sig och antagit sin makes efternamn , " Wilson . "
Detta prov databas kommer att användas i resten av vägledningen.
2 .
Skapa ett nytt Java- klass och kalla den " XMLParser. java . " Du kan göra detta i någon text editor eller med en egen Java Integrated Development Environment (IDE )
Klistra in följande kod i den : .
import com. sun. org . apache. xml. internal. serialize. OutputFormat ;
import com. sun. org. apache. xml. internal. serialize. XML11Serializer ;
import com. sun. org. apache. xml. internal. serialize . XMLSerializer ;
import java . io. File ;
import java. io. FileOutputStream ;
import java. io. IOException ;
import org. w3c. dom. Document ;
import org. w3c. dom . Element ,
import org. w3c. dom. Node ;
import org. w3c. dom. NodeList ;
import org. xml. sax. SAXException ;
offentliga klass XMLParser {
public static void main ( String [ ] args ) {
try {
}
}
}
Alla andra nummer kommer att gå in i prova-block av de viktigaste metoden .
3 .
Lägg till följande rad Java-kod för att öppna XML -filen från hårddisken :
Dokument d=XMLDocument . parse ( ny fil ( " C : \ test. xml "));
4
Query dokumentet grundar sig på en tagg namn . I detta fall kommer det bästa sättet att söka är att leta efter Alice Smith efter namn : .
//Skapa en lista med alla namn
NodeList NL=d. getElementsByTagName ( " namn " ) ;
//Sök efter användare med namnet Alice Smith
for (int x=0 , x Node nameNode=nl . punkten ( x ) ,
om ( nameNode. getTextContent () . equals ( " Alice Smith " )) {
}
5 .
Ge Alice Smith ett nytt namn . Placera koden inom "om " uttalande från steg 3 .
nameNode. setTextContent ( " Alice Wilson " ) ;
6
Spara förändrade XML -fil till disken :
FileOutputStream FOS=new FileOutputStream ( "C: \ test. xml " ) ;
OutputFormat av=new OutputFormat ( "XML" , " ISO-8859 -1 " , true );
XMLSerializer serializer=new XML11Serializer ( FOS , i ) ,
serializer . serialisera ( d. getDocumentElement ());
fos. close ( ) ; .
7
Fånga eventuella undantag eller fel som kan skapas om något går fel . Lägg till följande kod i slutet av prova-block :
catch ( SAXException e) {
e. printStackTrace () ; }
catch ( ParserConfigurationException e) {
e. printStackTrace () ; }
catch ( IOException e) {
e. printStackTrace () ; }