我有一个包含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。
答案 0 :(得分:0)
以下答案可以说明如何将xml转换为java对象。它可能无法给出确切的解决方案。
创建&#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
}
编写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);
以上代码是示例代码。可能无法正常工作,您需要做一些修改才能使用它。 请在此处找到xstream api和示例:http://x-stream.github.io/alias-tutorial.html
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用JAXB解组(将XML转换为Java对象)XML,然后根据需要准备HashMap。