Java解析XML字符串

<?xmlversion="1.0"encoding="UTF-8"?><QueryResponsexmlns="http://api.showji.com/Locati... <?xml version="1.0" encoding="UTF-8"?>
<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>

字符串如上、
我要拿到所有节点之间的值。
求源代码!
展开
 我来答
韇兯堲
2014-05-16 · 超过55用户采纳过TA的回答
知道答主
回答量:124
采纳率:100%
帮助的人:115万
展开全部
使用第三发组件,我用的是dom4j.jar
代码如下:
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文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hexin20117
2014-05-16 · 超过12用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:33.2万
展开全部

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文件,然后在解析
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沧海行仁
2014-05-16
知道答主
回答量:26
采纳率:0%
帮助的人:4.3万
展开全部
http://zhidao.baidu.com/question/573289441.html 引用下别人的回答,就是这个样子的了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式