У меня есть эта строка идет из моей базы данных:разбор строки в ArrayList элемент
<user>
<name>John</name>
<surname>Shean</surname>
<birthdate>1/1/1111</birthdate>
<phone >(555) 444-1111</phone>
<city>NY</city>
</user>
мне нужно, чтобы разобрать его и добавить:
arrayList<User>.(User(name,surname,...))
Он должен закончить тем, что, как это:
user[1]={name="John",surname="Shena",...}
Я использовал следующий метод, но не работает правильно. У кого-нибудь есть способ сделать это?
public User parseList(String array) {
User user = new User();
try {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
URL u = new URL("xmldb:exist://192.168.1.71:8094/exist/xmlrpc/db/testDB/userInformation.xml");
Document doc = builder.parse(u.openStream());
NodeList nodes = doc.getElementsByTagName("user");
Element element = (Element) nodes.item(0);
user.setName(getElementValue(element, "name"));
user.setSurname(getElementValue(element, "surname"));
user.setBirthdate(getElementValue(element, "birthdate"));
user.setPhone(getElementValue(element, "phone"));
user.setCity(getElementValue(element, "city"));
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
return user;
}
protected String getElementValue(Element parent, String label) {
return getCharacterDataFromElement((Element) parent.getElementsByTagName(label).item(0));
}
private String getCharacterDataFromElement(Element e) {
try {
Node child = e.getFirstChild();
if (child instanceof CharacterData) {
CharacterData cd = (CharacterData) child;
return cd.getData();
}
} catch (Exception ex) {
}
return "";
}
выглядит как у вас есть XML. попробуйте googling «java parse xml» – Tala
@ user2642549 вы пытались выяснить, почему это не сработало, вместо того, чтобы просить новый код ... Если новый второй код не будет работать, вы попросите его третий. например. Если у вас возникли проблемы с кодом, попробуйте исправить это. Тем не менее .. Что вы подразумеваете под 'Это должно выглядеть так: user [1] = {name =" John ", surname =" Shena ", ...}' – aProgrammer
Stackoverflow отличается от других сайтов QA mate, здесь if вы ошибаетесь, другие начнут кричать на вас. Я просто информировал вас о том, как работает SO. Я не отклонил ваш вопрос, поскольку я знаю его подлинный вопрос ... Я пытался помочь, но не мог получить строку, о которой я упоминал в комментарии. и их я прочитал ваш ответ на @Tala ... – aProgrammer