u010039550 2010-12-11 10:18
浏览 304
已采纳

读取xml 关于子节点中的长度问题?

xml文件读取,

xml文件:
[code="xml"]<?xml version="1.0" encoding="UTF-8"?>

 
A123000
四川省XX县XX镇XX路X段XX号


B1234
四川省XX市XX乡XX村XX组


B1234
四川省XX市XX乡XX村XX组

[/code]

[code="java"]//很明显该类是一个单例,先获取产生DocumentBuilder工厂,的工厂,在通过这个工厂产生一个DocumentBuilder,

DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
//DocumentBuilder就是用来产生Document的
DocumentBuilder db=dbf.newDocumentBuilder();
//这个Document就是一个XML文件在内存中的镜像
Document doc=db.parse(new File("src/test.xml"));
System.out.println(XmlTest.class.getClassLoader().getResourceAsStream("test.xml"));

    //在xml文件里,只有一个根元素,先把根元素拿出来看看 
    Element element=doc.getDocumentElement();
    //元素的根节点
    System.out.println("根节点:"+element.getTagName());

    NodeList nodeList=doc.getElementsByTagName("VALUE");
    System.out.println("VALUE节点长度(个数):"+nodeList.getLength());
    //父节点
    Node fatherNode=nodeList.item(0);
    System.out.println("父节点:"+fatherNode.getNodeName());
    //所有子节点
    NodeList childNodes= fatherNode.getChildNodes();
    System.out.println(""+childNodes.getLength());[/code]

遇到问题:为什么子节点长度为5???? 明明才有两个。 而且打印的时候显示的是 索引 2,4 才打印了。

  • 写回答

1条回答 默认 最新

  • dyccsxg 2010-12-11 10:56
    关注

    通过 fatherNode.getChildNodes(); 获取到的节点中包括 Text (例如换行符或空白符) 和 Element 两种类型,可输出详细信息查看
    [code="java"] for (int i=0; i<childNodes.getLength(); i++){
    Node n = childNodes.item(i);
    System.out.println("node [name:" + n.getNodeName()
    + ", type:" + n.getNodeType()
    + ", value:" + n.getTextContent()
    + "]");
    if (n instanceof Text){
    System.out.println("---Text---");
    } else if (n instanceof Element){
    System.out.println("---Element---");
    }
    }[/code]
    [code="java"]node [name:#text, type:3, value: 
    ]
    ---Text---
    node [name:NAME, type:1, value:A123000]
    ---Element---
    node [name:#text, type:3, value:
    ]
    ---Text---
    node [name:ADDR, type:1, value:四川省XX县XX镇XX路X段XX号]
    ---Element---
    node [name:#text, type:3, value:
    ]
    ---Text---[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?