解析这样的XML 需要怎么做

 <?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的解析