2 qq 35383085 qq_35383085 于 2017.01.10 19:51 提问

解析这样的XML 需要怎么做 100C
 <?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>  

8个回答

qq_34900539
qq_34900539   2017.01.10 19:50

给父节点元素中加id标识

zhangpan_soft
zhangpan_soft   Rxr 2017.01.10 20:11

现在各行业基本都不用xml传输数据了,建议学json,!至于你这个问题,xml解析有两种,一种是基于事件的,就是触发一次事件读一段代码,一种是基于什么的忘了,就是一次性把所有数据全部加载,然后解析,便于随机读取,但是这样内存消耗过大,具体可以百度

zhglance
zhglance   2017.01.10 20:35

使用dom4j,之前用xml都是用这个工具,http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/17/3082949.html

u010528826
u010528826   2017.01.10 20:56
 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+。代码你自己优化下

baij1230
baij1230   2017.01.10 22:25

用sax或者dom4j

hehexiaoxia
hehexiaoxia   2017.01.11 09:52

写一个与之相对应的结构体,然后用xml反序列化到结构体中。

a193314
a193314   2017.01.11 18:54

大部分语言都有对应的库,你根据你用的编程语言,找个库就能解。如果是C/C++的话, 可以用libxml2 或者tinyxml 。很多的。其他语言不熟悉

strongerzhi
strongerzhi   2017.01.12 09:12

首先,需要定义一个类型或结构ResNursingOrderBean来存储这个Xml的所有内容,里面有字段code,message, totalscore,NursedList[],同样,再申明一个NursedList的类型或者结构体,按照上面说的记录,完成这些之后,你可以开始加载你的XML文档,然后根据节点名称对号入座,最终得到一个ResNursingOrderBean类型的实例就完成了XML的解析

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
XML 文件中出现 & ® ™ 这类特殊字符的一种解决方法(from blog.joycode.com/ghj)
        这几天在跟一个公司合作的项目中,对方提供了RSS接口,通过这个接口,在我们网站展现出来,但是对方RSS中出现了一些麻烦的字符,比如 &,®,™  等。这些字符放到XML中,如果不做特殊处理,就会有错误产生。比如下面的XML:&在IE 浏览器,以及一些解析用的DOM中解析这个片段,就会产生错误。在W3C的技术规范中,也可以看到这样的字符不允许出现:http://www
Xml解析所需要的jar包
提供Xstream解析的所有jar包,用于xml与对象相互转化
解析xml 要使用的jar包
如果只添加dom4j的会报错误 Caused by: java.lang.ClassNotFoundException: org.jaxen.JaxenException 需要添加 Maven依赖如下      dom4j      dom4j      1.6.1                       jaxen     jaxen     1.1
dom4j解析xml时候需要2个包
dom4j-1.6.1.jar jaxen-1.1.6.jar private static DataItems getxmlParserByGN(String gname) throws DocumentException { DataItems dataitems = new DataItems(); if(gname != null) { SAXReader sax = n
xml解析四种方法的代码实现
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法 在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化的XML Document。这就涉及到XML字符串和Xml Document的转换问题,说白了这是个很简单的问题,本文就各种XML解析器分别列举如下,以方便自己今后查阅。
dom4j解析XML所需jar包
dom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jardom4j解析XML必备jar
jdom.jar与dom4j.jar包
包括xml解析文件需要的jar包,和xml解析的源代码
解析soap Xml
@Test public void main() { String deptXML = "\"1.0\" encoding=\"UTF-8\"?>" +"\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"ht
xml解析和序列化总结
第一,xml是什么? 和html类似,区别 xml是存储数据的,自定义的 html是显示数据的,预定义的 常用1.0版本,不用1.1不想下兼容 应用 系统之间传输数据的格式 表示生活中的关系 配置文件 第二,语法 声明 驼峰命名法 必须放到第一行,还要第一列 元素的定义 有开始就有结束 没有内容就行内结束 正确嵌套 只有一个根标签如
java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom等方式
java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom等方式 java四种xml解析实例和jar包,包括dom,sax,dom4j,jdom等方式 是学习Java的xml解析的好例子,包括相应的dom4j.jar,jdom.jar等,自己整理的,物超所值啊,奉献上了。