我开始关注JDOM。到目前为止,我已经创建了一个名为file.xml的文件。现在我想在XML文件中添加一些内容,但我有点不安全如何做到这一点? 那可能是: - 名称 - 姓 - 年龄
希望有人可以帮助我吗?最好的问候朱莉
ppackage examplePackage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
public class ReadXMLFile {
public static void main(String[] args) {
try {
write();
read();
}
catch (FileNotFoundException e){
e.printStackTrace();
}
catch(IOException e) {
e.printStackTrace();
}
catch(JDOMException e) {
e.printStackTrace();
}
}
public static void read() throws JDOMException, IOException {
SAXBuilder reader = new SAXBuilder();
Document document = reader.build(new File("file.xml"));
XMLOutputter xout = new XMLOutputter(Format.getPrettyFormat());
xout.output(document, System.out);
}
public static void write() throws FileNotFoundException, IOException {
Document document = new Document();
Element root = new Element("document");
root.setAttribute("file", "file.xml");
root.addContent(new Element("style"));
document.setRootElement(root);
Element person = new Element("Person");
person.setAttribute("name", "Mads");
}
}
在控制台中打印:
<?xml version="1.0" encoding="UTF-8"?>
<document file="file.xml">
<style />
</document>
在这种情况下,它应该打印出名为“Mads”的人吗?
答案 0 :(得分:0)
在read
方法中,您可能想要更改此行:
的System.out.println(document.getContent());
类似于:
XMLOutputter xout = new XMLOutputter(Format.getPrettyFormat());
xout.output(document, System.out);
这将打印整个文档,而不仅仅是toString()
部分文档。
然后,关于在write()
方法中添加内容....
您可以使用以下项设置根元素:
Document document = new Document(); Element root = new Element("document"); root.setAttribute("file", "file.xml"); root.addContent(new Element("style")); document.setRootElement(root);
。这没有什么不对,但通常更常见的是:
Element root = new Element("document");
root.setAttribute("file", "file.xml");
root.addContent(new Element("style"));
Document document = new Document(root); // note the root constructor
如果您想添加其他内容,例如:
for (int i = 0; i < 10; i++) {
Element count = new Element("count" + i);
root.addContent(count);
}
或
Element person = new Element("person");
person.setAttribute("name", "Jon");
person.setAttribute("lastname", "Skeet");
person.setAttribute("age", "37");
root.addContent(person);
更新:最后,在添加内容后,您确实需要将文件写入磁盘:
XMLOutputter xmlout = new XMLOutputter(Format.getPrettyFormat());
try (FileOutputStream fos = new FileOutputStream("file.xml")) {
xmlout.output(document, fos);
}