我想解析格式为的xml字符串:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><account email="john@example.com"><contacts><contact><id>0</id><nickname></nickname><firstname></firstname><lastname></lastname><emailxyz@gmail.com</email><passcode>p</passcode><creationdate>16 Dec 2013 17:40:58</creationdate><status>T</status></contact></contacts></account>
我能够提取联系人数据,例如id,昵称等。 我的问题是如何获取帐户电子邮件帐户的价值email email“”john@example.com“
代码摘录
NodeList account = doc.getElementsByTagName(Constants.ACCOUNTS_TAG);
NodeList responseList = doc.getElementsByTagName("contact");
for(int i =0 ;i < responseList.getLength();i++){
parser.getValue(response, Constants.EMAIL_TAG)
}
我尝试了acct_email= parser.getValue((Element) account.item(0), "email");
,但它会从联系人返回电子邮件而不是帐户中的电子邮件。
答案 0 :(得分:1)
NodeList nList = doc.getElementsByTagName("account");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
System.out.println("\nCurrent Element :" + nNode.getNodeName());
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("email id : " + eElement.getAttribute("email"));
}
}
答案 1 :(得分:0)
xml文件基本上是一个字符串,因此您可以使用Scanner对象手动解析它,或者您可以使用unmarshaller将其转换为对象并获取其数据字段
答案 2 :(得分:0)
NodeList accounts = getElementsByTagName("account");
for (int j = 0; j < accounts.getLength(); j++) {
accounts.item(j).getAttributes().getNamedItem("email");
}