XML解析

布满荆棘的人生 2022-04-18 00:00 437阅读 0赞
  1. package LX1;
  2. import org.w3c.dom.*;
  3. import javax.xml.parsers.DocumentBuilder;
  4. import javax.xml.parsers.DocumentBuilderFactory;
  5. public class Test {
  6. public static void main(String[] args) {
  7. DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();//得到DOM解析器的工厂实例
  8. try {
  9. DocumentBuilder db=dbf.newDocumentBuilder(); //从DOM工厂获得DOM解析器
  10. Document doc=db.parse("D:\\my\\aaa.xml"); //解析XML文档,得到一个Document对象,即DOM树
  11. NodeList list=doc.getElementsByTagName("Brand"); //list对象包括全部"Brand"标签
  12. for(int i=0;i<list.getLength();i++) { //遍历list对象
  13. Node brand= list.item(i); //获得第i个Brand元素信息
  14. System.out.println(brand.getNodeName()); //输出全部无素
  15. Element el=(Element)brand; //把brand转换成Element类型才能取属性的值
  16. System.out.println(el.getAttribute("name")); //输出Brand标签的name属性的值
  17. }
  18. NodeList list1=doc.getElementsByTagName("Type"); //list1对象包括全部"Type"标签
  19. for (int i=0;i<list1.getLength();i++) { //遍历list1对象
  20. Node type=list1.item(i); //获得第i个Brand元素信息
  21. System.out.println(type.getNodeName()); //输出i无素
  22. Element e2=(Element)type; //把Type转换成Element类型才能取属性的值
  23. System.out.println(e2.getAttribute("name")); //输出Type标签的name属性的值
  24. }
  25. Element element=doc.getDocumentElement(); //获得根节点的对象
  26. System.out.println(element.getNodeName()); //输出根节点
  27. System.out.println(element.getAttribute("b")); //输出根节点属性b的值
  28. System.out.println(element.getAttribute("a")); //输出根节点属性a的值
  29. NodeList lis= element.getChildNodes(); //获得根节点的所有子节点赋给lis
  30. for(int i=0;i<lis.getLength();i++) { //遍历
  31. Node no1=lis.item(i); //获得第i个元素信息
  32. if(no1.getNodeType()==no1.ELEMENT_NODE) { //判断是否为想要的元素,不是空值
  33. System.out.println(no1.getNodeName()); //输出根节点所有子节点
  34. Element e3=(Element)no1; //转换成Element类型才能取属性的值
  35. System.out.println(e3.getAttribute("name")); //输出子节点的name属性的值
  36. }
  37. NodeList li= no1.getChildNodes(); //获得lis节点的所有子节点赋给li
  38. for (int j=0;j<li.getLength();j++) { //遍历
  39. Node no2= li.item(j); //获得第j个元素信息
  40. if(no2.getNodeType()==no2.ELEMENT_NODE) { //判断是否为想要的元素,不是空值
  41. System.out.println(no2.getNodeName()); //输出li节点所有子节点
  42. Element e4=(Element)no2; //转换成Element类型才能取属性的值
  43. System.out.println(e4.getAttribute("name")); //输出子节点的name属性的值
  44. }
  45. }
  46. }
  47. NodeList noli=doc.getElementsByTagName("Type"); //全部"Type"标签
  48. Element elem=(Element) noli.item(0); //转换类型
  49. String put=elem.getFirstChild().getNodeValue(); //返回Type第一个子节点的值
  50. if(elem.getNodeType()==elem.ELEMENT_NODE) {
  51. System.out.println( put); //输出
  52. }
  53. } catch (Exception e) {
  54. // TODO Auto-generated catch block
  55. e.printStackTrace();
  56. }
  57. }
  58. }

发表评论

表情:
评论列表 (有 0 条评论,437人围观)

还没有评论,来说两句吧...

相关阅读

    相关 XML

    目录 XML解析方式 一.java中配置文件的三种配置位置以及读取方式 1.读取相同目录下配置文件 2.根目录 3.安全路径 WEB-INF 二.DOM4J 2

    相关 【二】、xml

    > 上一篇中说到封装了HttpClient助手类和Json解析响应数据的封装。这节主要扩展响应数据解析类,封装出一个xml解析的实现类,适应微信第三方服务的接口。 主要实现的

    相关 json、xml

    ![Image 1][] -------------------- > 除了XML和Json,文中还涉及到的一些知识:第三方类库的使用,获取本地文件内容,网站API使用,G