【发布时间】:2013-08-02 13:32:27
【问题描述】:
我的数据库中有这个字符串:
<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。尝试谷歌搜索“java parse xml”
-
@user2642549 您是否尝试找出它为什么不起作用而不是要求新代码...如果新的第二个代码不起作用,您将要求第三个.. 编程不是像那样..如果您在代码中遇到问题,请尝试解决。那就是说..你的意思是
It should looks like: user[1]={name="John",surname="Shena",...} -
Stackoverflow 与其他 QA 网站伙伴不同,在这里,如果您犯错,其他人会开始对您大喊大叫。我只是让你知道 SO 是如何工作的。我没有否决你的问题,因为我知道这是一个真正的问题......我试图提供帮助,但无法得到我在评论中提到的路线。他们的我读到你对@Tala 的回复...
标签: java xml xml-parsing arraylist