请看看我这个程序:
public List selectOperation (String snum) throws SAXException,ParserConfigurationException,TransformerConfigurationException,TransformerException,IOException
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("DateFile.xml");
doc.normalize();
NodeList nodelist = doc.getElementsByTagName("AAB001");
for (int i=0;i<nodelist.getLength();i++)
{
if (nodelist.item(i).getFirstChild().getNodeValue()==snum)
{
NodeList node = nodelist.item(i).getParentNode().getChildNodes();
List list = new ArrayList();
for (int j=0;j<node.getLength();j++)
{
String s = node.item(j).getFirstChild().getNodeValue();
list.add(j,s);
}
return list;
}
}
}
我想在DateFile.xml内找到节点AAB001的值等于SNUM的所有兄弟节点,然后输出他们的值,然后在别的类里调用,但我不太清楚方法的返回类型是不是该这么设,我测试时有错:
"NodeDOM.java": Error #: 466 : method does not return a value at line26, column 2
老天,当你的:
if (nodelist.item(i).getFirstChild().getNodeValue()==snum)
条件一直不成立的时候,你的方法根本就没有正确返回呀!
if 语句外要有return list。因为如果你的if不成立的话,就没有return语句来。
你必须把它放到for外面,并在for以后return