public static void main(String[] args) {
SAXReader reader = new SAXReader(); Document doc;
try {
doc = reader.read("src/School.xml");
Node root = doc.selectSingleNode("/books");
List list = root.selectNodes("book[@show='no']");
Iterator it =list.iterator();
System.out.println(it.hasNext());
 while(it.hasNext()){
 Attribute att =(Attribute)it.next();
 att.setValue("yes");
 }
 
} catch (DocumentException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}  
}   报错说org.dom4j.tree.DefaultElement cannot be cast to org.dom4j.Attribute  请高手赐教

解决方案 »

  1.   

    List list = root.selectNodes("book[@show='no']");
    这个list里面是你返回的nodes
    it.next();返回的是单个node, 不是attr
    你要改的是attr,所以还少一部操作
      

  2.   

    是的,
     while(it.hasNext()){
                     Node node = (Node)it.next();
                     Attribute att = node.getAttribute(...);

                     att.setValue("yes");
                 }
    大致就是改那两行代码,具体的看你使用的XML函数库
      

  3.   

    http://topic.csdn.net/u/20081202/23/67e0cc8b-2922-4f56-94e4-05811090c5a6.html去这边看看!