2

AXIOM 中的 OMNode 和 OMElement 有什么区别和用法?我已经实现了一个 XML 解析器,并在实现中使用了这两个对象。OMElement 是 OMNode 的子类吗?

例如,两者的行为方式相同:看看这个

//OMElement
OMElement omElement = nodeElement;
String attributeValue = ((OMElementImpl) omElement).getText();

//OMNode
OMNode omNode = nodeElement;
String attributeValue = ((OMElementImpl) omNode).getText();

两者都支持铸造并且以相同的方式

4

1 回答 1

2

首先,您的代码指的是OMElementImpl. 你不应该那样做。正如类的名称(以及包含该类的包的名称)所示,这是一个不应直接在应用程序代码中使用的实现类。无论如何,强制转换OMElementImpl是无用的,因为getText方法是由OMElement接口定义的。

要回答这个问题,是的,OMElementextends OMNode,正如您在 Javadoc 中看到的那样:

http://ws.apache.org/axiom/apidocs/org/apache/axiom/om/OMElement.html

顾名思义,OMElement表示一个 XML 元素。OMNode另一方面,由所有表示 XML 信息项的 Axiom 类实现,该信息项可以是另一个信息项的子项(例如注释、文本节点、处理指令等)。

于 2013-09-01T17:58:44.643 回答