【问题标题】:how to parse xml into java object?如何将xml解析为java对象?
【发布时间】:2012-02-11 13:44:06
【问题描述】:

您好,我有一个从 Web 服务生成的以下格式的 xml。

<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());

现在我有了 doc,我将如何获得每个的 and

并将其放入对象调用Item中

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

【问题讨论】:

  • 您使用的是哪种编程语言?如果是java,你可以使用JAXB,这里有一个很好的例子吗? javabeat.net/articles/…

标签: dom xsd xml-parsing sax


【解决方案1】:

XStream 可以将 xml 解析为 java 对象。 XStream 不需要创建 XML。

示例代码是here

希望这会对你有所帮助。

【讨论】:

  • 谢谢,“如果你用它来生成 xml。”但我从另一个来源获取 xml,该来源通过其他人编写的常规 dom 解析器生成。所以我不是生成 xml 而是读取和转换它们
猜你喜欢
  • 2016-12-02
  • 2013-04-28
  • 2023-03-28
  • 1970-01-01
  • 2019-06-29
  • 1970-01-01
  • 2021-05-16
  • 1970-01-01
相关资源
最近更新 更多