java - 使用 Java 中的自定义对象实现将 XML 解析为 DOM 树

标签 java xml parsing dom

我想将 XML 文档解析为 Java 中的 DOM 树,这样某些对象(例如 org.w3c.dom.Nodeorg.w3c.dom.Element< 的实例) 可以向下转换为我创建的类的实例,同时最大限度地减少我需要(重新)实现的 XML 相关代码的数量。作为一个(非常简单的)示例,如果我有一个 XML 元素,例如:

<Vector size="5">
  1.0 -1.0 3.0 -2.73e2
</Vector>

我想自定义解析器来为其实例化以下内容:

public class Vector extends /* some parser class */ {
  private double[] elements;

  /* constructors; etc.*/

  public double dotProduct(Vector v) {
    /* implementation */
  }
}

这样我就可以将解析器创建的 Vector 实例传递给例如 javax.xml.xpath 对象的方法,并让它们正常工作。实现这一目标的最快方法是什么?单独使用 Java SE 是否可行,或者是否需要第三方库(例如 Xerces)?

最佳答案

我不确定您的要求是什么,但假设您可以控制 XML 的外观,我会使用 XStream .它将允许您完全跳过所有 DOM 操作。

现在从 their 2 minute tutorial ,它可能看起来不像是为这个用例构建的,但它实际上是。您首先创建您的 java 类,确保它们以您希望的方式生成 XML,然后使用它将您已经存在的 XML 作为 XStream 对象读回到您的程序中。这是一个使用起来非常愉快的图书馆。

关于java - 使用 Java 中的自定义对象实现将 XML 解析为 DOM 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16599580/

相关文章:

Java DateTimeFormatter 用偏移量解析 YearMonth

java - 重复大小写标签

Java 牛顿迭代

java - 将 SOAP 消息转换为 Java 对象

java - XML schema 可以在单个 complexType 中有多个选择?

PHP XML 按名称删除元素和所有子元素

java - 将字符串转换为 bigdecimal 时出错

javascript - 客户端页面调用/抓取?

java - H2内存数据库初始化数据

java - 如何在 jSTL 中使用变量 data 作为作用域变量