以下DOM解析必须是JDK1.5 因为 1.4 的XML地包中没有node.getTextContent()这个属性方法
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
/**
* 解析XML 填充Map getXMLMap <p></p>
*
* @param xml
* @return
* @throws IOException
* @throws Exception
* @throws Exception
*/
public static HashMap getXMLMap(String xml) {
InputSource source = null;
StringReader read = null;
try {
DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
DocumentBuilder dombuilder = domfac.newDocumentBuilder();
read = new StringReader(xml);
source = new InputSource(read);
Document document = dombuilder.parse(source);
NodeList nodes = document.getElementsByTagName("QueryCondition");
HashMap map = new HashMap();
Node node = null;
NodeList itemNodes = null;
for (int i = 0; i < nodes.getLength(); i++) {
node = nodes.item(i);
itemNodes = node.getChildNodes();
for (int j = 0; j < itemNodes.getLength(); j++) {
node = itemNodes.item(j);
map.put(node.getNodeName(), node.getTextContent());
}
}
return map;
} catch (Exception e) {
return null;
} finally {
if (null != source)
source = null;
if (null != read) {
read.close();
read = null;
}
}
}