XML解析

XML解析

可扩展标记语言,XML文档内容由一系列标签元素组成

#必须有唯一的根标签
<tagName attr="attrValue"...>
	text
	<subTag>...</subTag>
</tagName>

<tagName attr="attrValue".../>
  • 读XML文档

private SAXRreader sr= new SAXReader();
#文档对象
private Document doc = sr.read(new File(PATH));
#获取根元素
private Element root = doc.getRootElement();
  • 解析单个Element(e)

获取根节点的所有一级子元素
List<Element> elements = root.elements();
获取元素名称
String tagName = e.getName();
获取元素的文本
String text = e.getText();
获取元素的属性值
String attrVal = e.attributeValue(String attributeName)

获取元素的某个子元素
Element subElement = e.element(String subTagName);
获取元素的某个子元素文本
String subText = e.elementText(String subTagName);
  • 检索节点

Node node = root.selectSingleNode(String path)
List<Element> nodes= root.selectNodes(String path)

String path="/el"  选取根元素el
String path="/el/el2"  选取属于el的子元素的所有el2元素
String path="//el2"  选取所有el2子元素,而不管它们在文档中的位置
String path="/el//el2"  选择属于el元素的后代的所有el2元素
String path="//@lang"  选取名为lang的所有属性
String path="/el/el2/text()"  选取属于el的子元素的所有el2元素的文本
String path="/el[@lang]" 选取所有拥有名为lang的属性的el元素
String path="/el[text()='value']" 选取文本值为value的el元素
  • 添加节点

添加子元素
Element el= e.addElement(String subName);
添加文本
el.setText(String text);
添加属性
el.addAttribute(String attrName,String attrValue)
  • 修改节点

el.attribute(String attrName).setValue(String attrValue)
el.element(String subName).setText(String text)
  • 删除节点

通过父节点删除一级子元素
el.getParent().remove(el);
  • 存盘

#指定输出格式
private OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter writer = new XMLWriter(new FileWriter(String path),format);
writer.write(Document doc);
writer.flush();
writer.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值