如何将XML转换为HashMap?

时间:2016-09-19 05:55:56

标签: java xml xstream

我有一个包含Infos的XML文件:

<Datas>
<Data type="DL  ">
    <IndexLine>
        <Field name="TerminalNum" string=""/>
    </IndexLine>
    <BusinessLine>
        <Field name="MachineNum" string=" "/>
        <Field name="StuffNum" string=" "/>
        <Field name="psw" string=""/>
    </BusinessLine>
</Data>

<Data type="PM  ">
    <IndexLine>
        <Field name="TerminalNum" string=""/>
    </IndexLine>
    <BusinessLine>
        <Field name="MachineNum" string=" "/>
        <Field name="StuffNum" string=" "/>
        <Field name="psw" string=""/>
    </BusinessLine>
</Data>
</Datas>

如何将上述XML转换为Map,例如HashMap<String,Data>。关键是属性&#34; type&#34;的值,Data是定义节点<Data> </Data>内容的bean。

3 个答案:

答案 0 :(得分:0)

以下答案可以说明如何将xml转换为java对象。它可能无法给出确切的解决方案。

  1. 创建&#39;数据&#39; class,IndexedLine,BusinessLine类 例如:

    public class Data {
        private IndexedLine indexedLine;
        private BusinessLine businessLine;
    
        // setter and getter
    }
    
    public class IndexedLine {
        private Field filed;
    
        // setter and getter
    }
    
    public class BusinessLine {
        private Field filed;
    
        // setter and getter
    }
    
    public class Field {
        private String name;
        private String string;
    
        // setter and getter
    }
    
  2. 编写java代码以从xml获取对象。

    XStream xstream = new XStream();
    xstream.alias("data", Data.class);
    xstream.alias("indexedLine", IndexedLine.class);    
    xstream.alias("businessLine", BusinessLine.class);
    Data data = (Data)xstream.fromXML(xml);
    
  3. 以上代码是示例代码。可能无法正常工作,您需要做一些修改才能使用它。 请在此处找到xstream api和示例:http://x-stream.github.io/alias-tutorial.html

答案 1 :(得分:0)

有一些技术可以将xml转换为java对象,将java对象转换为xml。

请参阅下面的xStream.github.io

了解如何从xml转换为hashMap

可能会有所帮助

答案 2 :(得分:0)

您可以使用JAXB解组(将XML转换为Java对象)XML,然后根据需要准备HashMap。