【问题标题】:How can I read values from XML and save it in Hashmap using Java如何从 XML 读取值并使用 Java 将其保存在 Hashmap 中
【发布时间】:2017-11-30 12:14:26
【问题描述】:

我是 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>

【问题讨论】:

    标签: java xml xml-parsing hashmap


    【解决方案1】:

    当你不知道字段时,你应该使用哈希映射

    解决问题的方法是构建 一个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和name可以检索。

    一般来说,你使用一个集合(List、Map、Set)来存储对象 具有相似的特征,这就是泛型存在的原因。

    【讨论】:

      【解决方案2】:

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

      那么你只需要存储在一个hashmap中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多