欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用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("目标地址的物理路径"));

如果有争议的地方欢迎留言批评指正、共同学习进步。

相关标签: JDOM