2016-09-19 12 views
-2

Я хава XML-файл, содержащий Infos:Как преобразовать XML в HashMap?

<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<String,Data>. Ключ - это значение атрибута «type», а Data - это компонент, который определяет содержимое узла <Data> </Data>.

+1

Возможный дубликат [как разобрать xml на hashmap?] (Http://stackoverflow.com/questions/27547292/how-to-parse-xml-to-hashmap) –

+0

Я хочу использовать fromXml() функцию для создания объекта bean-объекта непосредственно так же, как использование GSON или других простых инструментов. Могу ли я реализовать интерфейс Converter для этого? – desertboat

ответ

0

Следующий ответ может дать представление о том, как преобразовать xml в объект java. Это может не дать точное решение.

  1. Создать класс 'Данные', 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 
    } 
    
  2. писать код 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

0

Есть некоторые технологии для преобразования xml в java-объект и java-объект в xml.

любезно см ниже как xStream.github.io

Это может помочь понять, как преобразовать из XML в HashMap

0

Вы можете использовать JAXB для маршализацию (преобразование XML в объекты Java) в XML, а затем подготовить HashMap согласно требованию.

 Смежные вопросы

  • Нет связанных вопросов^_^