今天做的项目需要解析XML字符串,看过[url]http://www.blogjava.net/JAVA-HE/archive/2007/02/07/98527.html[/url]这位仁兄写的解析,觉得漏洞挺多的:1.因为是用Properties存值的,所以子节点不能重复;2.当将XML改成有几层关系之后,父节点取值就会出错.所以用Document来做了,代码:
缺点:Domcument通常需要加载成整个文档,大一点的数据就不行了.
public static void main(String[] args) throws SAXException, IOException, ParserConfigurationException {
InputStream inputStream=new ByteArrayInputStream(XML().getBytes());
Document document=DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(inputStream);
NodeList nodeList=document.getElementsByTagName("value");
System.out.println(nodeList.item(1).getTextContent());
}
private static String XML(){
String xmlStr="<?xml version='1.0' encoding='UTF-8'?>"+
"<xml-body>"+
"<value> "+
"<test>1</test>"+
"<test>2</test></value>"+
"<value>2</value>"+
"<value>3</value>"+
"</xml-body>";
return xmlStr;
}
缺点:Domcument通常需要加载成整个文档,大一点的数据就不行了.