使用JDOM生成/解析XML文档
程序员文章站
2022-03-03 17:39:06
...
一、使用JDOM生成XML文档存放到硬盘上
- 生成Document对象,直接使用new的方式
Document document = new Document();
- 生成文档的根节点
Element root = new Element("根节点名字“);
- 将根节点添加到第一步生成的document对象中
document.addContent(root);
- 此后,如果想生成XML层次结构,只需要生成子节点,然后将子节点添加到对应的父节点中,比如说:
Element element = new Element("元素名");
root.addContent(element);
- 元素中只包含文本,不包含子元素
Element element = new Element("元素名"):
element.setText("包含的文本信息");
- 元素的属性生成,先生成属性对象,将相应的属性对象添加到元素上,比如说:
Arrtibute attribute = new Attribute("属性名", "属性值");
element.setAttribute(attribute);
- XML注释的生成
Comment comment = new Comment("注释内容");
element.addContent(comment);
- 设置XML的输出格式
当我们不想去关系XML输出格式的时候,这个环节我们可不必关心;如果说,想要获得我们看起来格式比较优美的XML文档时,就需要自己设置这部分:
//原始的XML格式:
Format format1 = Format.getRawFormat();
//Pretty格式的XML文档:
Format format2 = Format.getPrettyFormat();
- 设置缩进
format.setIndent(" ");
- 设置编码格式
format.setEncoding("编码格式");
- 输出生成的XML文档
XMLOutputter out = new XMLOutputter(XML文档的输出格式(Format类型的对象));
out.output(document, new FileOutputStream("指定的物理路径"));
二、使用JDOM解析对应的XML文档
- 获得文档对应的Document对象
SAXBulider builder = new SAXBuilder();
Document document = builder.build(new File("对应XML所在的物理路径"));
- 获得其根元素
Element root = document.getRootElement();
- 获得元素的标签名
String tagName = root.getName();
- 获得子元素
//如果没有重名子元素
Element element = element.getChild("子元素名");
//如果有重名子元素
List list = element.getChildren("子元素名");
for(int i = 0; i < list.size(); i++)
{
Element e = (Element)list.get(i);
}
- 如果元素没有子元素、只有文本内容。获得其文本内容
String text = element.getText();
- 获得元素的所有属性,遍历
List list = element.getAttributes();
for(int i = 0; i < list.size(); i++)
{
Attribute attr = (Attribute)list.get(i);
String attrName = attr.getName();
String attrValue = attr.getValue();
}
- 获得单个属性,得到他的属性值
Attribute attr = element.getAttribute("属性名");
String str = attr.getValue();
- 删除某一元素中的对应子元素,并将新生成的XML保存到硬盘上,原来XML不会发生改变;
element.removeChild("将要删除的子元素名");
XMLOutputter out = new XMLOutputter(Format.getPrettyFormat.setIndent(" "));
out.output(doc, new FileOutputStream("目标地址的物理路径"));
如果有争议的地方欢迎留言批评指正、共同学习进步。