Java DOM方式解析XML(模板)

时间:2020-12-07 16:08:19
 //创建一个DocumentBuilderFactory工厂实例
DocumentBuilderFactory DBF=DocumentBuilderFactory.newInstance();
//通过工厂实例对象创建一个DocumentBuilder实例
DocumentBuilder DB=DBF.newDocumentBuilder();
//解析URL指定的XML文件,并保存到D变量
Document D=DB.parse("URL路径");
//通过标签名获取节点标签
NodeList NL=D.getElementsByTagName("标签");
//循环遍历NL集合
for(int i=0;i<NL.getLength();i++){
//通过索引值获取指定的Node节点
Node N=NL.item(i);
/*获取指定属性(已知属性名和数量为1)
* 节点强制类型转换
* Element E=(Element)E;
*通过属性名获取属性值
* E.getAttribute("node_name");
* */
//获取节点的所有属性
NamedNodeMap NNM=N.getAttributes();
//遍历属性Map集合
for(int j=0;j<NNM.getLength();j++){
//通过索引获取指定属性
Node attributeNode=NNM.item(j);
//获取属性节点Name名称
attributeNode.getNodeName();
//获取属性节点Value属性值
attributeNode.getNodeValue();
} //获取N节点的所有子节点
NodeList NL1=N.getChildNodes();
//遍历NL1集合
for(int k=0;k<NL1.getLength();k++){
//筛选出非节点的
if(NL1.item(k).getNodeType()==Node.ELEMENT_NODE){
//获取节点名
NL1.item(k).getNodeName();
//获取当前节点的子节点的值,XML文件一切皆为节点
//也可通过NL1.item(k).getTextContent()方法获取文本节点
//getTextContent区别是这个会把子节点的元素的Text值合并起来输出
NL1.item(k).getFirstChild().getNodeValue();
}
}
}