用java解析xml数据

用java解析xml数据,java,xml,Java,Xml,我需要从xml中获取数据 字符串res 数据将在字符串res中,如下所示 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <person> <id>QZhx_w1eEJ</id> <first-name>pratap</first-name> <last-name>murukutla</last-name> </pers

我需要从xml中获取数据

字符串res

数据将在字符串res中,如下所示

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
  <id>QZhx_w1eEJ</id>
  <first-name>pratap</first-name>
  <last-name>murukutla</last-name>
</person>

QZhx_w1eEJ
普拉塔普
穆鲁库特拉
我必须从这些数据中获取id、名字和姓氏,并且必须存储在变量id、名字和姓氏中


如何访问xml以获取这些详细信息。

使用内置于Java中的SAX或DOM解析器。将字符串解析为DOM树,遍历树,获取值

您可以从以下内容开始:

ByteArrayInputStream inputStream = 
    new ByteArrayInputStream(response.getBody().getBytes("UTF-8"));
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
    .newDocumentBuilder();
Document doc = builder.parse(new InputSource(inputStream));
您可以在

中看到一个示例,您可以使用JAXB(JSR-222)并执行以下操作。JavaSE6中包含了一个实现

演示

package forum10520757;

import java.io.StringReader;
import javax.xml.bind.*;
import javax.xml.bind.annotation.*;

public class Demo {

    public static void main(String[] args) throws Exception {
        JAXBContext jc = JAXBContext.newInstance(Person.class);

        Unmarshaller unmarshaller = jc.createUnmarshaller();
        StringReader xml = new StringReader("<person><id>QZhx_w1eEJ</id><first-name>pratap</first-name><last-name>murukutla</last-name></person>");
        Person person = (Person) unmarshaller.unmarshal(xml);

        System.out.println(person.id);
        System.out.println(person.firstName);
        System.out.println(person.lastName);
    }

    @XmlRootElement
    @XmlAccessorType(XmlAccessType.FIELD)
    static class Person {
        String id;

        @XmlElement(name="first-name")
        String firstName;

        @XmlElement(name="last-name")
        String lastName;
    }

}

实际上,我从一个url获得xml结果作为响应,并且我可以以xml格式获得整个响应…我只需要上面的3个值…上面的xml数据只是response.getBody()来检索这三个值​​需要解析XML,然后在不同节点之间移动以获取它们。感谢您的帮助..但这在我的一个大java文件中是一项简单的任务..当我执行静态类person时,它显示了错误..@PratapMurukutla-上面的代码是从我的java编辑器复制和粘贴的。你在修改后的版本中看到了例外吗?我不知道如何感谢你…你为我完成了这个任务…这个论坛给了我很大的帮助。。
QZhx_w1eEJ
pratap
murukutla