为了账号安全,请及时绑定邮箱和手机立即绑定

用DOM4J解析XML文件如何解析出其中的注释行

57b6c8910001546805000294.jpg

57b6c891000133f804550297.jpg

如何修改以上的代码,从而能够解析出注释行??

正在回答

2 回答

首先,代码是从百度贴的,简单说下,这里如果要解析注释的话,就不能用迭代器Iterator来迭代element了,从代码可以看出,element只是node的接口之一,而注释节点的继承结构里没有element接口,需要使用如下的遍历方式才能得到,原理大概是这样,如有不明白的地方,欢迎追问

Element root= doc.getRootElement();

for (int i = 0, size = root.nodeCount(); i < size; i++) 

   {
                       Node node = root.node(i);
                       if (node instanceof Element) {
                        System.out.println("This is a Element!");
                        prinContent(node);
                           System.out.println();
                       } else if(node instanceof org.dom4j.Comment){
                        System.out.println("This is a Comment!");
                        prinContent(node);
                        System.out.println();
                       }else{
                        System.out.println("This is a Nothing!");
                        prinContent(node);
                       }
                   }


0 回复 有任何疑惑可以回复我~
#1

慕粉3833463 提问者

按照您说的改了下,Node node = root.node(i);这一行代码出现错误,其错误是:Multiple markers at this line - Node cannot be resolved to a type - Line breakpoint:DOM4JTest [line: 22] - 这个是什么意思啊 应该怎么该啊
2016-08-22 回复 有任何疑惑可以回复我~
#2

pwy2012 回复 慕粉3833463 提问者

我直接给你代码吧 注意包的引入: package com.pwy.xml.dom4j; import java.io.File; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.Node; import org.dom4j.io.SAXReader;
2016-08-22 回复 有任何疑惑可以回复我~
#3

pwy2012 回复 慕粉3833463 提问者

回复有字数限制 代码我贴二楼了
2016-08-22 回复 有任何疑惑可以回复我~
#4

慕粉3833463 提问者

非常感谢!
2016-08-22 回复 有任何疑惑可以回复我~
查看1条回复

package com.pwy.xml.dom4j;

import java.io.File;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

public class Test {
    public static void main(String[] args) throws Exception {
        
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File("src/com/pwy/xml/dom4j/books.xml"));
        Element root= document.getRootElement();
        for (int i = 0, size = root.nodeCount(); i < size; i++)

           {
               Node node = root.node(i);
               if (node instanceof Element) {
                System.out.println("This is a Element!");
                   System.out.println();
               } else if(node instanceof org.dom4j.Comment){
                System.out.println("This is a Comment!");
                System.out.println();
               }else{
                System.out.println("This is a Nothing!");
               }
           }
    }
}

0 回复 有任何疑惑可以回复我~
#1

慕粉3833463 提问者

运行结果为: This is a Nothing! This is a Element! This is a Nothing! This is a Element! ........... 不是我要的解析结果啊
2016-08-22 回复 有任何疑惑可以回复我~
#2

慕粉3833463 提问者 回复 pwy2012

那谢谢啦 875767445
2016-08-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java眼中的XML---文件读取
  • 参与学习       83200    人
  • 解答问题       431    个

通过Java认识并且创造XML文件,如何应用 Java“解析 XML

进入课程

用DOM4J解析XML文件如何解析出其中的注释行

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信