java利用dom4j操作XML
参看:http://blog.csdn.net/legoe/article/details/6941260
Document对象相关
1、读取XML文件,获得document对象.
SAXReader reader = new SAXReader();
Document document = reader.read(new File(“input.xml”));
2、解析XML形式的文本,得到document对象.
String text = “xxx“;
Document document = DocumentHelper.parseText(text);
3、主动创建document对象.
Document document = DocumentHelper.createDocument();
Element root = document.addElement(“members”);// 创建根节点
1、获取文档的根节点.
Element rootElm = document.getRootElement();
2、取得某节点的单个子节点.
Element memberElm=root.element(“member”);// “member”是节点名
3.取得节点的文字
String text=memberElm.getText();
String text=root.elementText(“name”);这个是取得根节点下的name字节点的文字.
常用的方法:
Document
List elements(标签名) 根据标签名获取一组元素节点对象
Element element(标签名) 根据标签名获取一个元素节点对象
Element
String attributeValue(属性名) 根据属性名获取属性值
String getText() 元素所含有的text内容,如果内容为空则返回一个空字符串而不是null
String elementText(标签名) 元素的某个指定(qualified name或者local name)的子元素中的text信息
通过xpath查找指定的节点
采用xpath查找需要引入jaxen-xx-xx.jar,否则会报java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常
Element ele = (Element) doc.selectSingleNode(“/domain/devices/disk/source”);`
List<Node> nodes = doc.selectNodes("domain/devices/disk/target");
注意此时返回的对象为Node类型,一般需要强转为Element类型,进行操作。
4.1、 xpath语法
1、选取节点
XPath 使用路径表达式在 XML 文档中选取节点,节点是沿着路径或者 step 来选取的。
常见的路径表达式:
表达式
nodename 选取当前节点的所有子节点
/ 从根节点选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性
路径表达式
bookstore 选取 bookstore 元素的所有子节点
/bookstore 选取根元素 bookstore
bookstore/book 选取bookstore 下名字为 book的所有子元素。
//book 选取所有 book 子元素,而不管它们在文档中的位置。
bookstore//book 选取bookstore 下名字为 book的所有后代元素,而不管它们位于 bookstore 之下的什么位置。
//@lang 选取所有名为 lang 的属性。