Java解析XML字符串
<QueryResponse xmlns="http://api.showji.com/Locating/">
<Mobile>1588213</Mobile>
<QueryResult>True</QueryResult>
<TO>中国移动</TO>
<Corp>中国移动</Corp>
<Province>四川</Province>
<City>成都</City>
<AreaCode>028</AreaCode>
<PostCode>610000</PostCode>
<VNO/>
<Card/>
</QueryResponse>
字符串如上、
我要拿到所有节点之间的值。
求源代码! 展开
代码如下:
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class TestArray{
private File file;
public TestArray(File file){
this.file=file;
}
public void read() throws DocumentException{
//获得解析器
SAXReader sr = new SAXReader();
//解析xml文件
Document doc = sr.read(file);
//获得xml根元素
Element root = doc.getRootElement();
//获得根元素迭代器
Iterator<Element> ir = root.elementIterator();
//迭代根元素,看根元素下有哪些其他元素
while (ir.hasNext()) {
//第一个元素
Element element = (Element) ir.next();
//判断是哪个元素,方法应该没用错,错了就不好意思了
if(element.getName().equals("flag")){
//获取此元素属性值
String code = element.attributeValue("code");
String msg = element.attributeValue("msg");
}else{
String totalCount = element.attributeValue("totalCount");
Iterator<Element> ir1 = element.elementIterator();
//如果此元素下还有别的元素,则继续迭代
while(ir1.hasNext()){
Element commentary = (Element) ir1.next();
String type = commentary.attributeValue("type");
}
}
}
}
}
我是解析字符串。不是XML文件
publicclass MyXMLReader2DOM4J {
publicstaticvoid main(String arge[]) {
long lasting = System.currentTimeMillis();
try {
File f = new File("data_10k.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(f);
Element root = doc.getRootElement();
Element foo;
for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) {
foo = (Element) i.next();
System.out.print("Mobile:" + foo.elementText("Mobile"));
System.out.println("QueryResult:" + foo.elementText("QueryResult"));
。。。。。同理直接取
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我的是字符串。你让我加载XML文件。
就是你这个定义成字符串,你可以现转成xml文件,然后在解析