3

我有一个从 xml 获取数据的要求。

字符串资源;

数据将在字符串 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>

我必须从该数据中获取 id 以及名字和姓氏,并且必须存储在变量 id,first-name,last-name

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

4

3 回答 3

5

您可以使用 JAXB (JSR-222) 并执行以下操作。Java SE 6 中包含了一个实现。

演示

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;
    }

}

输出

QZhx_w1eEJ
pratap
murukutla
于 2012-05-09T18:19:16.483 回答
2

你可以从:

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

您可以在http://www.java2s.com/Code/Java/XML/XMLDocumentinformationbyDOM.htm中看到一个示例

于 2012-05-09T17:12:02.613 回答
1

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

http://java.sun.com/xml/tutorial_intro.html

于 2012-05-09T17:06:39.040 回答