Это мой xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<input1>
<concept name="Rad order">
<input>varReasonForexam=Infection, post-operative;varReasonID=19666904</input>
</concept>
<concept name="Inpatient Encounter">
<input>varFirstName=park123a;varLastName=sssrk123a;varSex=Male</input>
</concept>
</input1>
Это мой Concept.java
класс
public class Concept {
private String input;
private String name;
public Concept() {}
public String getinput() {
return input;
}
public void setinput(String input){
this.input = input;
}
@XmlAttribute
public String getname() {
return name;
}
public void setname(String name){
this.name = name;
}
}
Это мой Input1.java
класс
import java.util.List;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Input1 {
private List<Concept> concept;
@XmlElement
public List<Concept> getconcept() {
return concept;
}
public void setconcept(List<Concept> concept) {
this.concept = concept;
}
}
Этоосновной класс RefactorClassArray1.java
import java.io.File;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.util.ArrayList;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import java.util.Set;
public class RefactorClassArray1 {
public static void main(String[] args) {
ArrayList<String> thisIsAStringArray = new ArrayList<String>();
Multimap<String, String> strMapVariables = ArrayListMultimap.create();
try {
JAXBContext context = JAXBContext.newInstance(Input1.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
Input1 input = (Input1) unmarshaller.unmarshal(new File("varFile.xml"));
List<Concept> list=input.getconcept();
int isize = list.size();
for(int i = 0; i < isize; i++)
{
Concept concept = list.get(i);
String strconname = concept.getname();
String strinput= concept.getinput();
String [] strarrinput = strinput.split(";");
int arrsize = strarrinput.length ;
String strinputval ;
for (int j=0; j<arrsize; j++) {
strinputval = strarrinput[j];
strMapVariables.put(strconname, strinputval);
}
}
Set<String> keys = strMapVariables.keySet();
for(String key: keys) {
thisIsAStringArray.add(key);
}
System.out.println("thisIsAStringArray:" + thisIsAStringArray);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
Выходные данные, которые я получаю:
strMapVariables: {Rad order = [varReasonForexam = Инфекция, послеоперационная, varReasonID = 19666904], стационарное столкновение= [varFirstName = park123a, varLastName = sssrk123a, varSex = Male]} thisIsAStringArray: [Рад. порядок, встреча с больными]
Мой вопрос такой:
Если я добавлю еще один вход в concept name="Rad order"
в XML, это мой новый xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<input1>
<concept name="Rad order">
<input>varReasonForexam=Infection, post-operative;varReasonID=19666904</input>
<input>varReasonForpain=Ipain, pelvic;varID=19666905<input>
</concept>
<concept name="Inpatient Encounter">
<input>varFirstName=park123a;varLastName=sssrk123a;varSex=Male</input>
</concept>
</input1>
ожидаемый strMapVariables
вывод, как показано ниже:
strMapVariables: {Rad order = [varReasonForexam = Инфекция, послеоперационная, varReasonID = 19666904], Rad order = [varReasonForpain = Ipain, таза; varID = 19666905] стационарная встреча = [varFirstName = park123a, varLastName = sssrk123a, varSex = Male]}
хочу использоватьТолько для JAXB и отображения, почтовый код должен выводиться как набор отображений.Как этого добиться?