<?xml version="1.0" encoding="UTF-8"?>
<!-- 根目录 -->
<ResNursingOrderBean>
<code>1</code>
<message>获取数据成功</message>
<totalScore>分数</totalScore>
<!-- 外层list对象 -->
<NursedList >
<projectId >1</projectId>
<projectName>教育程度</projectName>
<projectMark>0</projectMark>
<projectType>1</projectType>
<!-- 内层List对象 -->
<OptionList id="选项答案">
<optionId >B</optionId>
<optionName>中专</optionName>
<optionMark>0</optionMark>
</OptionList>
<OptionList id="选项答案">
<optionId >C</optionId>
<optionName>大专</optionName>
<optionMark>0</optionMark>
</OptionList>
</NursedList>
<NursedList >
<projectId >1</projectId>
<projectName>入院方式</projectName>
<projectMark>0</projectMark>
<projectType>1</projectType>
<OptionList id="选项答案">
<optionId >A</optionId>
<optionName>步行</optionName>
<optionMark>0</optionMark>
</OptionList>
<OptionList id="选项答案">
<optionId >B</optionId>
<optionName>轮椅</optionName>
<optionMark>0</optionMark>
</OptionList>
</NursedList>
</ResNursingOrderBean>
给父节点元素中加id标识
现在各行业基本都不用xml传输数据了,建议学json,!至于你这个问题,xml解析有两种,一种是基于事件的,就是触发一次事件读一段代码,一种是基于什么的忘了,就是一次性把所有数据全部加载,然后解析,便于随机读取,但是这样内存消耗过大,具体可以百度
使用dom4j,之前用xml都是用这个工具,http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/17/3082949.html
public class Test {
@SuppressWarnings("unchecked")
public static void main(String[] args) throws Exception {
//这里改成你的文件
InputStream in = new FileInputStream("H:test.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(in);
Element root = doc.getRootElement();
System.out.println("code:" + root.elementText("code"));
System.out.println("message:" + root.elementText("code"));
System.out.println("totalScore:" + root.elementText("code"));
System.out.println();
List<Element> nursedList = root.elements("NursedList");
for (int i = 0; i < nursedList.size(); i++) {
Element element = nursedList.get(i);
System.out.println("nursedList:" + i);
System.out.println("-->projectId:" + element.elementText("projectId"));
System.out.println("-->projectName:" + element.elementText("projectName"));
System.out.println("-->projectMark:" + element.elementText("projectMark"));
System.out.println("-->projectType:" + element.elementText("projectType"));
List<Element> optionList = element.elements("OptionList");
for (int j = 0; j < optionList.size(); j++) {
Element option = optionList.get(j);
System.out.println();
System.out.println("-->OptionList:" + i + ",id:" + option.attributeValue("id"));
System.out.println("---->optionId:" + option.elementText("optionId"));
System.out.println("---->optionName:" + option.elementText("optionName"));
System.out.println("---->optionMark:" + option.elementText("optionMark"));
}
}
in.close();
}
}
用的是 dom4j 1.6.1+。代码你自己优化下
用sax或者dom4j
写一个与之相对应的结构体,然后用xml反序列化到结构体中。
大部分语言都有对应的库,你根据你用的编程语言,找个库就能解。如果是C/C++的话, 可以用libxml2 或者tinyxml 。很多的。其他语言不熟悉
首先,需要定义一个类型或结构ResNursingOrderBean来存储这个Xml的所有内容,里面有字段code,message, totalscore,NursedList[],同样,再申明一个NursedList的类型或者结构体,按照上面说的记录,完成这些之后,你可以开始加载你的XML文档,然后根据节点名称对号入座,最终得到一个ResNursingOrderBean类型的实例就完成了XML的解析