关于XML解析的问题

时间:2010-04-12 23:47:51

标签: java xml

当我解析下面的xml字符串时,我得到奇怪的属性,如“autowire”,其值为“default”。无论如何我只能获得明确定义的属性吗?

<bean id="aaaa" class="com.test.Service">
     <property name="cccc" ref="cccc"/>
</bean>

我正在进行简单的解析,将其转换为Document,然后遍历节点。

Document document = docBuilder.parse(input);
NodeList nodeList = document.getChildNodes(); 
etc.

2 个答案:

答案 0 :(得分:3)

您可以使用以下API查找是否明确指定了属性:

如果您使用DOM:   Attr.getSpecified()

如果您使用的是SAX:   Attributes2.isSpecified(qname)

答案 1 :(得分:2)

这取决于您使用什么来解析。我猜这是一个Spring bean配置文件。通常有一个与之关联的XML Schema,它将指定属性的所有默认值。

因此,当实际的XML解析器遍历文档时,它将构建某种表示形式(DOM解析器显然会构建一个树,SAX解析器将触发事件等)并插入这些默认值。