Node name = document.selectSingleNode("//default:name"); System.out.println(name.getText());
Node altitudeMode = document.selectSingleNode("//gx:altitudeMode"); System.out.println(altitudeMode.getText()); } }这里,我们设置的不是XPath的命名空间了,而是DocumentFactory的命名空间,其原理都差不多,只不过作用范围不一样,设置XPath的命名空间作用在XPath表达式,设置DocumentFactory作用在整个Document对象上。所以这里不再啰嗦,和上面一样。运行结果如下:长安大学渭水校区relativeToSeaFloor方法三:不使用开发环境给你提供的一系列对象,而是用XPath语法中自带的local-name() 和 namespace-uri()指定你要使用的节点名和命名空间实例如下: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的入门方法,这里不再叙述。运行结果如下:长安大学渭水校区推荐阅读:dom4j+xpath读取xml文件配置Oracle数据库连接 http://www.linuxidc.com/Linux/2013-04/83405.htmStruts2+jQuery+Dom4j实现服务器返回Xml文档 http://www.linuxidc.com/Linux/2012-07/65680.htmJava使用dom4j解析XML字符串 http://www.linuxidc.com/Linux/2013-07/87734.htm