Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将XML转换为HashMap?_Java_Xml_Xstream - Fatal编程技术网

Java 如何将XML转换为HashMap?

Java 如何将XML转换为HashMap?,java,xml,xstream,Java,Xml,Xstream,我有一个包含以下信息的XML文件: <Datas> <Data type="DL "> <IndexLine> <Field name="TerminalNum" string=""/> </IndexLine> <BusinessLine> <Field name="MachineNum" string=" "/> <Field n

我有一个包含以下信息的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转换为诸如HashMap之类的映射。关键是属性类型的值,数据是定义节点内容的bean。

下面的答案可以给出如何将xml转换为java对象的想法。它可能不会给出精确的解

创建“数据”类、IndexedLine、BusinessLine类 例如:

编写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和示例:

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

请看下面的内容


它可能有助于理解如何从xml转换为hashMap

您可以使用JAXB将xml转换为Java对象,然后根据需要准备hashMap。

我想要的可能是使用fromXml函数直接生成bean对象,就像使用GSON或其他简单工具一样。我可以实现接口转换器来实现这一点吗?
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);