android:从xml文件中获取数据

时间:2013-12-17 06:34:22

标签: android xml

我想解析格式为的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");,但它会从联系人返回电子邮件而不是帐户中的电子邮件。

3 个答案:

答案 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");
}