问题描述
publicstaticvoidmain(String[]args){SAXReaderreader=newSAXReader();Documentdoc;try{doc=reader.read("src/School.xml");Noderoot=doc.selectSingleNode("/books");Listlist=root.selectNodes("book[@show='no']");Iteratorit=list.iterator();System.out.println(it.hasNext());while(it.hasNext()){Attributeatt=(Attribute)it.next();att.setValue("yes");}}catch(DocumentExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}}
报错说org.dom4j.tree.DefaultElementcannotbecasttoorg.dom4j.Attribute请高手赐教
解决方案
解决方案二:
Listlist=root.selectNodes("book[@show='no']");这个list里面是你返回的nodesit.next();返回的是单个node,不是attr你要改的是attr,所以还少一部操作。。。
解决方案三:
引用1楼bingchuancom999的回复:
Listlist=root.selectNodes("book[@show='no']");这个list里面是你返回的nodesit.next();返回的是单个node,不是attr你要改的是attr,所以还少一部操作。。。
是的,while(it.hasNext()){Nodenode=(Node)it.next();Attributeatt=node.getAttribute(...);att.setValue("yes");}大致就是改那两行代码,具体的看你使用的XML函数库
解决方案四:
http://topic.csdn.net/u/20081202/23/67e0cc8b-2922-4f56-94e4-05811090c5a6.html去这边看看!