-
package
DOM; -
-
import
java.io.IOException; -
-
import
javax.xml.parsers.DocumentBuilder; -
import
javax.xml.parsers.DocumentBuilderFactory; -
import
javax.xml.parsers.ParserConfigurationExcep tion; -
-
import
org.w3c.dom.Document; -
import
org.w3c.dom.NamedNodeMap; -
import
org.w3c.dom.Node; -
import
org.w3c.dom.NodeList; -
import
org.xml.sax.SAXException; -
-
public
class DOMTest { -
-
public
static void main(String[] args ) { -
//通过DocumentBuilderFactory.newInstance()创建DocumentBuilderFactory对象
-
DocumentBuilderFactory
dbf = DocumentBuilderFactory. newInstance (); -
-
try
{ -
//创建DocmentBuilder对象
-
DocumentBuilder
db = dbf .newDocumentBuilder(); -
//通过DocmentBuilder对象的parse方法加载books.xml文件到当前项目下
-
Document d = db .parse( "books.xml" ); -
//获取book的所有节点 -
NodeList bookList = d .getElementsByTagName_r( "book" ); -
//通过getLength()方法获取节点长度 -
System. out .println( "共有" + bookList .getLength()+ "本书" ); -
for ( int i = 0; i < bookList .getLength(); i ++){ -
//通过item(i)方法获取一个book节点, nodelist 的索引值从0开始 -
Node book = bookList .item( i ); -
//获取book节点的属性集合 -
NamedNodeMap attrs = book .getAttributes(); -
System. out .println( "第" + ( i +1) + "共有" + attrs .getLength() + "个属性" ); -
for ( int j =0; j < attrs .getLength(); j ++){ -
Node attr = attrs .item( j ); -
System. out .print( "属性名:" + attr .getNodeName()); -
System. out .println( ",属性值:" + attr .getNodeValue()); -
} -
NodeList b = book .getChildNodes(); -
System. out .println( "第" + i + "本书共有" + b .getLength()+ "个节点" ); -
for ( int j = 0; j < b .getLength(); j ++){ -
if ( b .item( j ).getNodeType()== Node. ELEMENT_NODE ){ -
System. out .println( b .item( j ).getNodeName()); -
} -
-
} -
-
} -
-
-
-
}
catch (IOException e ) { -
-
e .printStackTrace();
-
}
-
catch (ParserConfigurationExcep tion e ) { -
-
e .printStackTrace(); -
} -
catch (SAXException e ) { -
-
e .printStackTrace(); -
} -
-
-
-
}
-
-
}
-