Не работает синтаксический анализ Android Android с использованием DOMParser - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть список объектов Profesor.Я пытаюсь прочитать XML-файл "listaprofesori.xml" из папки активов и создать другие объекты Profesor из данных XML, но он не добавит их в мой текущий список.В чем проблема?

При запуске приложение считывает мой список, заполненный объектами, созданными в onCreate.

Кроме того, у объекта Profesor есть следующие атрибуты, все они имеют тип String: число, номер, имя пользователя, пароль, email, sex, dept, datan.

Я пытался только показать значения, полученные из XML, думая, что проблема в том, как я пытаюсь добавить новый объект в текущий список объектов, но мойкод даже не читает мой xml .. я новичок, я пытался сделать это также с xmlpullparser, но это было хуже, и я лучше понимаю, таким образом.заранее спасибо, я в отчаянии :(!

Это мой код Java:

public class MainActivity extends Activity {

private List<Profesor> listaProfesori = new ArrayList<>();
private TextView listaa;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    listaa=findViewById(R.id.textView);

    Profesor p1 = new Profesor("Badea", "Angela", "angelab", "profcib", "badeaangela@gmail.com", "fem", "Informatica si Cibernetica Economica", "18/12/1970");
    Profesor p2 = new Profesor("Mitrut", "Ovidiu", "mitrutov", "prof2", "mitrutovidiu@gmail.com", "masc", "Informatica si Cibernetica Economica", "18/06/1955");
    Profesor p3 = new Profesor("Onisor", "Mihaela", "onisormih", "prof3664", "onisormihaela@gmail.com", "fem", "Economie", "20/04/1981");

    listaProfesori.add(p1);
    listaProfesori.add(p2);
    listaProfesori.add(p3);


    try {

        Profesor prof = new Profesor();

        InputStream is = getAssets().open("listaprofesori.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;

                prof = new Profesor();

                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.setDatan(eElement.getElementsByTagName("DATAN").item(0).getTextContent());

          listaProfesori.add(prof);
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ParserConfigurationException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    }


    StringBuilder builder = new StringBuilder();
    for (Profesor p:listaProfesori) {
        builder.append(p.toString() + "\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" encoding="UTF-8"?>
<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>
        </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>
        </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>
        </PROFESOR>
</LISTAPROFESORI>
...