Dom4j解析带有命名空间的XML文件(二)

2014-11-24 00:08:17 · 作者: · 浏览: 29


public class KMLReader3 {


public static void main(String[] args) throws DocumentException {
// 不使用开发环境给你提供的一系列对象,而是用XPath语法中自带的local-name() 和 namespace-uri()
// 指定你要使用的节点名和命名空间
SAXReader reader = new SAXReader();
Document document = reader.read(new File("长安大学渭水校区.kml"));


Node name = document
.selectSingleNode("//*[local-name()='name' and namespace-uri()='http://www.opengis.net/kml/2.2']");
System.out.println(name.getText());
}
}


这里直接在XPath表达式中指出命名空间,local-name()代表元素名称,namespace-uri()代表元素所在命名空间。


运行结果如下:


长安大学渭水校区


方法四:不使用XPath表达式,直接用element的element方法取一个子元素或elementIterator方法取多个元素


实例如下:


public class KMLReader4 {


public static void main(String[] args) throws DocumentException {
//不使用XPath,直接用element的element方法取一个子元素或elementIterator方法取多个元素
SAXReader reader = new SAXReader();
Document document = reader.read(new File("长安大学渭水校区.kml"));

Element root = document.getRootElement();
Element name = root.element("Document").element("name");
System.out.println(name.getText());
}
}


这种方法是Dom4j的入门方法,这里不再叙述。


运行结果如下:


长安大学渭水校区


推荐阅读: