Я использую Dom4J для анализа некоторых файлов Maven Pom. Когда я использую файлы Pom без пространства имен по умолчанию, все работает нормально. Например:
Document pom = DocumentHelper.parseText(
"<project>" +
" <groupId>xx.gov.xxx.sistema.xxx</groupId>" +
" <artifactId>sis-teste</artifactId>" +
" <packaging>war</packaging>" +
"</project>");
//below works fine
String groupId = pom.selectSingleNode("/project/groupId").getText()
Но если мой файл Pom определяет пространство имен по умолчанию, он перестает работать:
Document pom = DocumentHelper.parseText(
"<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\">" +
" <groupId>xx.gov.xxx.sistema.xxx</groupId>" +
" <artifactId>sis-teste</artifactId>" +
" <packaging>war</packaging>" +
"</project>");
//NullPointerException!!!!!!!!!!!!!!!!!!!!
String groupId = pom.selectSingleNode("/project/groupId").getText()
Странно то, что pom.selectSingleNode("/project")
работает нормально.
Как заставить мой запрос xpath работать с пространством имен по умолчанию? Я хочу запросить только "/project/groupId"
и получить узел groupId.