DOM解析器(六)

       Attr节点

       在XML文件中,属性并不是标记的子标记,因此,在DOM规范中,Att节点也不是Element节点的子节点。


        如果想解析XML文件中标记的属性,必须让对应的Element节点调用NamedNodeMap getAttributes()方法。该方法返回的NamedNodeMap对象由节点组成,这些节点可以被转换为Attr节点。Attr节点通过调用String getName()方法返回属性的名字,调用String getValue()方法返回属性的值。

 



       处理空白

       标记之间的缩进区域是为了使得XML文件看起来更美观而形成的,但解析器并不知道这一点,所以解析器仍然认为它们是有用的文本数据(由空白类字符组成)     

        人们习惯上称标记之间的缩进区是可忽略空白,这实际上不是很准确,因为XML文件的标记可以有文本和子标记(混合内容),在这种情况下,标记之间的区域中就可能包含非空白的字符内容。
        如果我们不允许标记有混合内容,即标记要么只有子标记要么只有文本,在这种情形下,称标记之间的缩进区域是可忽略空白就比较恰当,这些空白区确实使得XML文件看起来更加美观,也是它们存在的惟一目的。


        如果想让DOM解析器忽略缩进空白,即这些缩进空白不在Document中形成Text节点,那么XML文件必须是有效的,而且所关联的DTD文件必须规定XML文件的标记不能有混合内容,同时DocumentBuilderFactory对象在给出DOM解析器之前,必须调用setIgnoringElementContentWhitespace(boolean whitespace)进行设置,将参数whitespace的值设为true。 


       验证规范性和有效性

        通过DocumentBuilderFactory对象factory事先设置是否检查XML文件的有效性,如:factory.setValidating(true);


以上内容参考  耿祥义  出版的 XML基础教程(清华大学出版社) ,然后整理修改而成。

你可能感兴趣的:(XML解析)