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

标签 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>

最佳答案

不知道字段的时候应该使用hash map

解决你问题的常规方法是构建 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.

//Description,id,name 可取。

In general, you use a Collection (List, Map, Set) to store objects with similar characteristics, that's why generics exist.

关于java - 如何使用 Java 从 XML 中读取值并将其保存在 Hashmap 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47573260/

相关文章:

java - JQuery + JAVA 中的长轮询?

具有自定义 View ID 的 Android API

iOS - 检测到附件 URL,但未针对不同项目显示

c# - 如何流式传输(加载)XML 文件、修改 XML 元素数据以及写入 MemoryStream

sql-server - 解析SSIS包

java - 如何使用ResetAbandonedTimer避免由于removeAbandonedTimeout而关闭连接

java - POI 3.17 中的“HSSFCellStyle.BORDER_THIN”替代方案

java - 多个数据源对一个数据库具有不同的权限

xml - 如何在片段创建中使用全局命名空间定义?

java - 无法对 JAXB 生成的模型中的 null 值调用 "get"