<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.0</version>
</dependency>
调用: Map<String, Object> map = parserXmlString( xmlMsg );
/**
* 将 xml 字符串 转换为 map
<ResponseInfo> --- xml 字符串
<ResCode>Failed</ResCode>
<ResMessage>Already in use</ResMessage>
<ErrorNo>3</ErrorNo>
</ResponseInfo>
*/
public static Map<String, Object> parserXmlString( String xml ) {
// xml 字符串中可能包含的 key
List<String> keys = new ArrayList<>();
keys.add( "ResCode" );
keys.add( "ResMessage" );
keys.add( "ErrorNo" );
Map<String, Object> map = new HashMap<>();
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(
new ByteArrayInputStream( xml.getBytes() ) );
Element responseInfo = document.getRootElement();
for ( int i = 0; i < keys.size(); i++ ) {
String key = keys.get( i );
if ( responseInfo.elements( key ).isEmpty() == false ) {
Element Command = ( Element ) responseInfo.elements( key ).get( 0 );
Object value = Command.getData();
map.put( key, value );
} else {
map.put( key, "" );
}
}
} catch ( DocumentException e ) {
System.out.println( e.getMessage() );
}
return map;
}