如何从XML读取值并使用Java将其保存在Hashmap中

时间:2017-11-30 12:14:26

标签: java xml xml-parsing hashmap

我是XML解析的新手,我试图在XML之后检索数据并将其保存在hashmap中。我希望每个字段中的描述,ID和名称保存在Hashmap中。

 <Entities TotalResults="13689">
         <Entity Type="test">
              <Fields>
                   <Field Name="description">
                       <Value>I want to print THIS</Value>
                   </Field>
                   <Field Name="id"><Value>1357</Value></Field>
                   <Field Name="vc-comments"><Value></Value></Field>
                   <Field Name="name">
                       <Value>locked manager - lock state</Value>
                   </Field>
                   <Field Name="has-linkage"><Value>N</Value></Field>
               </Fields>
         </Entity>
         <Entity Type="test">
              <Fields>
                   <Field Name="description"><Value>Print this</Value></Field>
                   <Field Name="user-06"><Value></Value></Field>
                   <Field Name="id"><Value>1358</Value></Field>
                   <Field Name="name">
                       <Value>locked manager - stealing a key </Value>
                   </Field>
                   <Field Name="vc-status"><Value></Value></Field>
              </Fields>
         </Entity>
     </Entities>

2 个答案:

答案 0 :(得分:3)

当你不知道字段

时,你应该使用哈希映射

你问题的方式就是建立 一个pojo课 像这样

public class MyPojo
{
    private Entities Entities;

    public Entities getEntities ()
    {
        return Entities;
    }

    public void setEntities (Entities Entities)
    {
        this.Entities = Entities;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [Entities = "+Entities+"]";
    }
}


public class Entities
{
    private String TotalResults;

    private Entity[] Entity;//you can use List<> insted 

    public String getTotalResults ()
    {
        return TotalResults;
    }

    public void setTotalResults (String TotalResults)
    {
        this.TotalResults = TotalResults;
    }

    public Entity[] getEntity ()
    {
        return Entity;
    }

    public void setEntity (Entity[] Entity)
    {
        this.Entity = Entity;
    }

    @Override
    public String toString()
    {
        return "ClassPojo [TotalResults = "+TotalResults+", Entity = "+Entity+"]";
    }
}

我已经制作了2个pojos以便您更好地理解

您可以创建与xml相关的其余部分。 稍后您可以使用

            File file = new File("My.xml");
            JAXBContext jaxbContext = JAXBContext.newInstance(MyPojo.class);

            Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
            MyPojo myPojo = (MyPojo) jaxbUnmarshaller.unmarshal(file);
            System.out.println(myPojo);//get your value with getter setter.

//可以检索描述,ID和名称。

  

通常,您使用Collection(List,Map,Set)来存储对象   具有相似特征,这就是仿制药存在的原因。

答案 1 :(得分:1)

您可以访问本教程,以便在java中解析XML文件 XML Parsing In Java

然后你只需要存储在一个hashmap中。