xml文件:<?xml version="1.0" encoding="UTF-8"?>
<店铺分类>
<服装>
<品牌>利郎</品牌>
<品牌>七匹狼</品牌>
</服装>
<鞋>
<品牌>耐克</品牌>
<品牌>阿迪达斯</品牌>
<品牌>李宁</品牌>
</鞋>
<手机>
<品牌>诺基亚</品牌>
<品牌>索爱</品牌>
<品牌>摩托罗拉</品牌>
</手机>
<电脑>
<品牌>戴尔</品牌>
<品牌>联想</品牌>
<品牌>神州</品牌>
</电脑>
</店铺分类>
java类:
DocumentBuilderFactory fc=DocumentBuilderFactory.newInstance();
 DocumentBuilder builder=fc.newDocumentBuilder();
 Document doc=builder.parse(new File("src/category.xml"));
 Node node=doc.getFirstChild();
 NodeList nodes=node.getChildNodes();
 List<String> list=new ArrayList<String>();
 for(int i=0;i<nodes.getLength();i++){
 System.out.print(nodes.item(i).getNodeName());
 list.add(nodes.item(i).getNodeName());
 }
 return list;
结果输出的是:#text服装#text鞋#text手机#text电脑#text.
这个#text不知道哪里来的,请高手指点一下!谢谢了

解决方案 »

  1.   

    #text,这里其实是将换行符作为了一个节点
    可以采用这条语句过滤  if(node.getNodeType() != Node.TEXT_NODE) for(int i=0;i <nodes.getLength();i++){
                 if(nodes.item(i).getNodeType() != Node.TEXT_NODE)
                 System.out.print(nodes.item(i).getNodeName());
                 list.add(nodes.item(i).getNodeName());
                } 
      

  2.   

    没遇到过
    for(int i=0;i <nodes.getLength();i++){
                    if(nodes.item(i).getNodeType() != Node.TEXT_NODE)
                    System.out.print(nodes.item(i).getNodeName());
                    list.add(nodes.item(i).getNodeName());
                } 
    这样可以解决么?
    学习下