package LX1;
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
public class Test {
public static void main(String[] args) {
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//得到DOM解析器的工厂实例
try {
DocumentBuilder db=dbf.newDocumentBuilder(); //从DOM工厂获得DOM解析器
Document doc=db.parse("D:\\my\\aaa.xml"); //解析XML文档,得到一个Document对象,即DOM树
NodeList list=doc.getElementsByTagName("Brand"); //list对象包括全部"Brand"标签
for(int i=0;i<list.getLength();i++) { //遍历list对象
Node brand= list.item(i); //获得第i个Brand元素信息
System.out.println(brand.getNodeName()); //输出全部无素
Element el=(Element)brand; //把brand转换成Element类型才能取属性的值
System.out.println(el.getAttribute("name")); //输出Brand标签的name属性的值
}
NodeList list1=doc.getElementsByTagName("Type"); //list1对象包括全部"Type"标签
for (int i=0;i<list1.getLength();i++) { //遍历list1对象
Node type=list1.item(i); //获得第i个Brand元素信息
System.out.println(type.getNodeName()); //输出i无素
Element e2=(Element)type; //把Type转换成Element类型才能取属性的值
System.out.println(e2.getAttribute("name")); //输出Type标签的name属性的值
}
Element element=doc.getDocumentElement(); //获得根节点的对象
System.out.println(element.getNodeName()); //输出根节点
System.out.println(element.getAttribute("b")); //输出根节点属性b的值
System.out.println(element.getAttribute("a")); //输出根节点属性a的值
NodeList lis= element.getChildNodes(); //获得根节点的所有子节点赋给lis
for(int i=0;i<lis.getLength();i++) { //遍历
Node no1=lis.item(i); //获得第i个元素信息
if(no1.getNodeType()==no1.ELEMENT_NODE) { //判断是否为想要的元素,不是空值
System.out.println(no1.getNodeName()); //输出根节点所有子节点
Element e3=(Element)no1; //转换成Element类型才能取属性的值
System.out.println(e3.getAttribute("name")); //输出子节点的name属性的值
}
NodeList li= no1.getChildNodes(); //获得lis节点的所有子节点赋给li
for (int j=0;j<li.getLength();j++) { //遍历
Node no2= li.item(j); //获得第j个元素信息
if(no2.getNodeType()==no2.ELEMENT_NODE) { //判断是否为想要的元素,不是空值
System.out.println(no2.getNodeName()); //输出li节点所有子节点
Element e4=(Element)no2; //转换成Element类型才能取属性的值
System.out.println(e4.getAttribute("name")); //输出子节点的name属性的值
}
}
}
NodeList noli=doc.getElementsByTagName("Type"); //全部"Type"标签
Element elem=(Element) noli.item(0); //转换类型
String put=elem.getFirstChild().getNodeValue(); //返回Type第一个子节点的值
if(elem.getNodeType()==elem.ELEMENT_NODE) {
System.out.println( put); //输出
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
还没有评论,来说两句吧...