Mam przykładowo taki plik xml:
<samochody>
<auto>
<marka>Audi</marka>
<model>q7</model>
<cena>200000</cena>
</auto>
<auto>
<marka>Opel</marka>
<model>Astra</model>
<cena>30000</cena>
</auto>
</samochody>
I teraz powiedzmy chcę zmienić cenę przy obydwóch samochodach. Jak to zrobić za pomocą biblioteki JDOM?
Powinno być chyba coś w tym stulu:
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class ModifyXMLFile {
public static void main(String[] args) {
try {
SAXBuilder builder = new SAXBuilder();
File xmlFile = new File("plik.xml");
Document doc = (Document) builder.build(xmlFile);
Element rootNode = doc.getRootElement();
Element staff = rootNode.getChild("auto");
staff.getChild("cena").setText("7000");
XMLOutputter xmlOutput = new XMLOutputter();
xmlOutput.setFormat(Format.getPrettyFormat());
xmlOutput.output(doc, new FileWriter("plik.xml"));
} catch (IOException io) {
io.printStackTrace();
} catch (JDOMException e) {
e.printStackTrace();
}
}
}
Ale jednak domyślam się, że wtedy zaktualizuje mi 1 samochód.. Ale jak odnieść się do kilku samochodów..?