У меня есть список объектов Profesor2.Я пытаюсь прочитать XML-файл "listaprof3.xml" из папки активов и создать другие объекты Profesor2 из данных XML.
Кроме того, у объекта Profesor2 есть следующие атрибуты, все они имеют тип String: число, prenume, имя пользователя, пароль, адрес электронной почты, пол, dept, datan и следующие 2 атрибута: private ArrayList listaGrupe;private ArrayList listaTeste ;.Если я тестирую базовый код с объектом без этих двух последних атрибутов, он работает хорошо.Класс Test имеет одно поле: номер строки;
Код читает мои значения String, но возникает проблема при попытке прочитать объекты с тегом «GRUPA» внутри тега «LISTAGRUPE» и объекты с тегом «TEST» внутри тега «LISTATESTE»и я не понимаю почему.Я перепробовал много вещей, которые я поставил в качестве комментариев.Заранее благодарю.
Я хочу прочитать все GRUPA и добавить их в arraylist listaGrupe, который я передаю после этого моему объекту, и все TEST, которые я хочу добавить в arraylist listaTeste, чтобы сделать то же самое.
Java-код:
public class Main3Activity extends Activity {
private List<Profesor2> listaProfesori2 = new ArrayList<>();
private ArrayList<Integer> listaGrupe = new ArrayList<>();
private ArrayList<Test> listaTeste = new ArrayList<>();
private TextView listaa;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
listaa=findViewById(R.id.textView3);
try {
InputStream is = getAssets().open("listaprof3.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(is);
Element element=doc.getDocumentElement();
element.normalize();
NodeList nList = doc.getElementsByTagName("PROFESOR");
for (int i=0; i<nList.getLength(); i++) {
Node node = nList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) node;
Profesor2 prof = new Profesor2();
prof.setNume(eElement.getElementsByTagName("NUME").item(0).getTextContent());
prof.setPrenume(eElement.getElementsByTagName("PRENUME").item(0).getTextContent());
prof.setUsername(eElement.getElementsByTagName("USERNAME").item(0).getTextContent());
prof.setPassword(eElement.getElementsByTagName("PAROLA").item(0).getTextContent());
prof.setEmail(eElement.getElementsByTagName("EMAIL").item(0).getTextContent());
prof.setSex(eElement.getElementsByTagName("SEX").item(0).getTextContent());
prof.setDept(eElement.getElementsByTagName("DEPT").item(0).getTextContent());
prof.setDataNasterii(eElement.getElementsByTagName("DATAN").item(0).getTextContent());
/*
NodeList lgrupe = eElement.getElementsByTagName("LISTAGRUPE");
for (int j = 0; i < lgrupe.getLength(); j++) {
Node nodchild = lgrupe.item(j);
if (nodchild.getNodeType() == Node.ELEMENT_NODE) {
String value = nodchild.getTextContent();
int grupa = Integer.parseInt(value);
listaGrupe.add(grupa);
}
}*/
/*
NodeList lgrupe = eElement.getElementsByTagName("LISTAGRUPE");
for(int j=0;i<lgrupe.getLength();j++) {
Node childgrupa = lgrupe.item(j);
if(childgrupa.getNodeName().equals("GRUPA")) {
int grupa = Integer.parseInt(lgrupe.item(j).getTextContent());
listaGrupe.add(grupa);
}
}*/
/* NodeList lgrupe = eElement.getElementsByTagName("LISTAGRUPE");
for(int j=0;i<lgrupe.getLength();j++) {
Node childgrupa = lgrupe.item(j);
if (childgrupa.getNodeType() == Node.ELEMENT_NODE) {
Element grupa = (Element) childgrupa;
NodeList listgrupe = grupa.getElementsByTagName("GRUPA");
Element namegrupa = (Element) listgrupe.item(0);
int grupa1 = Integer.parseInt(namegrupa.getTextContent());
listaGrupe.add(grupa1);
}
}*/
// String Lgrupe = eElement.getElementsByTagName("LISTAGRUPE").item(0).getTextContent();
/* Node grupe = nList.item(8);
NodeList lgrupe = grupe.getChildNodes();
for(int j=0;j<lgrupe.getLength();j++) {
Node nodgrupa = lgrupe.item(i);
if(nodgrupa.getNodeType()==Node.ELEMENT_NODE) {
Element grElem = (Element) nodgrupa;
int grupa1 = Integer.parseInt(grElem.getElementsByTagName("GRUPA").item(0).getTextContent());
}
}*/
//Node grupe = nList.item(8);
/*Node childgrupa = grupe.getFirstChild();
while(childgrupa.getNextSibling()!=null) {
childgrupa=childgrupa.getNextSibling();
if(childgrupa.getNodeName().equals("GRUPA")) {
Element grElem = (Element) childgrupa;
int grupa1 = Integer.parseInt(grElem.getElementsByTagName("GRUPA").item(0).getTextContent());
int grupa2 = Integer.parseInt(grElem.getElementsByTagName("GRUPA").item(0).getTextContent());
int grupa3 = Integer.parseInt(grElem.getElementsByTagName("GRUPA").item(0).getTextContent());
}
}*/
//prof.setListaGrupe(null);
//Node teste = nList.item(9);
/*NodeList lteste = teste.getChildNodes();
for(int k=0;k<lteste.getLength();k++) {
Node childtest = lteste.item(k);
if(childtest.getNodeName().equals("TEST")) {
Test test = new Test();
test.setTitlu(lteste.item(k).getTextContent());
listaTeste.add(test);
}
}
*/
//prof.setListaTeste(null);
listaProfesori2.add(prof);
}
}
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
}
StringBuilder builder = new StringBuilder();
for (Profesor2 p:listaProfesori2) {
builder.append(p.toString() + "\n");
builder.append("\n");
}
listaa.setText(builder.toString());
}
private static String getValue(String tag, Element element) {
NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes();
Node node = (Node) nodeList.item(0);
return node.getNodeValue();
}
}
XML-файл:
<?xml version="1.0"?>
<LISTAPROFESORI>
<PROFESOR>
<NUME>Stroe</NUME>
<PRENUME>Sorin</PRENUME>
<USERNAME>StroeS</USERNAME>
<PAROLA>profxml</PAROLA>
<EMAIL>sorinstroe@gmail.com</EMAIL>
<SEX>masc</SEX>
<DEPT>Finante</DEPT>
<DATAN>16/05/1976</DATAN>
<LISTAGRUPE>
<GRUPA>1066</GRUPA>
<GRUPA>1070</GRUPA>
<GRUPA>1071</GRUPA>
</LISTAGRUPE>
<LISTATESTE>
<TEST>t1</TEST>
<TEST>t2</TEST>
<TEST>t3</TEST>
</LISTATESTE>
</PROFESOR>
<PROFESOR>
<NUME>Enache</NUME>
<PRENUME>Maria</PRENUME>
<USERNAME>EnacheM</USERNAME>
<PAROLA>profxml222</PAROLA>
<EMAIL>enachemaria@gmail.com</EMAIL>
<SEX>fem</SEX>
<DEPT>Finante</DEPT>
<DATAN>12/01/1955</DATAN>
<LISTAGRUPE>
<GRUPA>1065</GRUPA>
<GRUPA>1067</GRUPA>
<GRUPA>1068</GRUPA>
</LISTAGRUPE>
<LISTATESTE>
<TEST>t3</TEST>
<TEST>t4</TEST>
</LISTATESTE>
</PROFESOR>
<PROFESOR>
<NUME>Mihalache</NUME>
<PRENUME>Ionut</PRENUME>
<USERNAME>MihalacheIonut</USERNAME>
<PAROLA>profxml785643</PAROLA>
<EMAIL>mihalacheionut@gmail.com</EMAIL>
<SEX>masc</SEX>
<DEPT>Baze de date</DEPT>
<DATAN>06/05/1971</DATAN>
<LISTAGRUPE>
<GRUPA>1067</GRUPA>
<GRUPA>1068</GRUPA>
<GRUPA>1070</GRUPA>
</LISTAGRUPE>
<LISTATESTE>
<TEST>t5</TEST>
<TEST>t6</TEST>
<TEST>t7</TEST>
</LISTATESTE>
</PROFESOR>
<PROFESOR>
<NUME>Vintila</NUME>
<PRENUME>Oana</PRENUME>
<USERNAME>VintilaO</USERNAME>
<PAROLA>profxml1113</PAROLA>
<EMAIL>vintilaoana@gmail.com</EMAIL>
<SEX>fem</SEX>
<DEPT>Baze de date</DEPT>
<DATAN>19/11/1986</DATAN>
<LISTAGRUPE>
<GRUPA>1065</GRUPA>
<GRUPA>1069</GRUPA>
<GRUPA>1076</GRUPA>
</LISTAGRUPE>
<LISTATESTE>
<TEST>t8</TEST>
</LISTATESTE>
</PROFESOR>
</LISTAPROFESORI>