XML解析
可扩展标记语言,XML文档内容由一系列标签元素组成
#必须有唯一的根标签
<tagName attr="attrValue"...>
text
<subTag>...</subTag>
</tagName>
<tagName attr="attrValue".../>
private SAXRreader sr= new SAXReader();
#文档对象
private Document doc = sr.read(new File(PATH));
#获取根元素
private Element root = doc.getRootElement();
获取根节点的所有一级子元素
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();