我想将 XML 文档解析为 Java 中的 DOM 树,这样某些对象(例如 org.w3c.dom.Node
或 org.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/