2012-01-16 84 views
1

嗨,我有一个xml格式从Web服务生成以下格式。如何将xml解析成java对象?

<root> 
    <item> 
     <name>test</name> 
     <description>test description</description> 
     <link>http://xxx</link> 
    </item> 
</root> 

我读文件

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
DocumentBuilder db = dbf.newDocumentBuilder(); 
Document doc = db.parse(new URL(url).openStream()); 

现在我有医生,我怎么会得到和每个

,并把它变成一个对象调用项目

public class Item { 
     private final String name; 
     private final String desc; 
     private final String link; 


     public Item(final String name, final String desc, final String link) { 
      super(); 
      this.name = name; 
      this.desc = desc; 
      this.link = link; 
     } 

     // ... getters for name and desc 
    } 

我看了dom元素的例子,但看起来很混乱。什么是将XML解析为java对象的最简单/有效的方法。我能举个例子吗?

使用xstream工程。

我做

final XStream xstream = new XStream(new DomDriver()); 
xstream.alias("root", LineItem.class); 
xstream.aliasField("name", Item.class, "name"); 
xstream.aliasField("description", Item.class, "desc"); 
xstream.aliasField("link", Item.class, "link"); 
xstream.fromXml(xml); 
+0

您正在使用哪种编程语言?如果是java,你可以使用JAXB,这里有一个很好的例子吗? http://www.javabeat.net/articles/14-java-60-features-part-2-pluggable-annotation-proce-3.html – kosa 2012-01-16 16:35:13

回答

1

XStream可以解析XML和Java对象。 XML不需要由XStream创建。

示例代码here

希望这会帮助你。

+0

谢谢,“只要你用它来生成xml。”但我从其他人通过常规dom分析器生成的另一个源代码获取xml。所以我不生成XML,而是阅读和转换它们 – 2012-01-16 18:10:43