返回值无效

问题描述:

我正在使用一个简单的XML Web服务,它允许您在XML文件上执行简单的CRUD操作。这里是我的客户端代码:返回值无效

@WebMethod(operationName = "Delete") 
public boolean Delete(String std_id) throws Exception { 
    File file = new File("C:/Users/user/Desktop/myStudentInstance/myStudentInstance.xml"); 
    boolean isDeleted = true; 
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
    DocumentBuilder db = dbf.newDocumentBuilder(); 
    org.w3c.dom.Document doc = db.parse(file); 
    NodeList root = doc.getElementsByTagName("Students"); 
    NodeList nList2 = doc.getElementsByTagName("student"); 
    for (int i = 0; i < nList2.getLength(); i++) { 
     Node nNode = root.item(0); 
     Node nNode2 = nList2.item(i); 
     Element eElement2 = (Element) nNode2; 

     if (eElement2.getElementsByTagName("Student_id").item(0).getTextContent().equals(std_id)) { 
      isDeleted = true; 
      nNode.removeChild(nNode2); 

     } else if (eElement2.getElementsByTagName("Student_id").item(0).getTextContent() != (std_id)) { 
      isDeleted = false; 

     } 

     DOMSource source = new DOMSource(doc); 

     TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
     Transformer transformer = transformerFactory.newTransformer(); 
     StreamResult result = new StreamResult(file); 
     transformer.transform(source, result); 

    } 
    System.out.println(isDeleted); 
    return isDeleted; 
} 

,这里是我的Visual Studio代码:

private void Delete_Click(object sender, EventArgs e) 
    { 

     var student_ID = textBox1.Text.ToString(); 
     Boolean isDeleted = true; 
     ServiceReference1.StudentWSClient myRef = new ServiceReference1.StudentWSClient(); 
     ServiceReference1.DeleteResponse response = new ServiceReference1.DeleteResponse(); 
     myRef.Delete(student_ID); 
     if ([email protected] == isDeleted) 
     { 
      MessageBox.Show("Student Deleted", "Delete Student", MessageBoxButtons.OK); 
      textBox1.Text = ""; 
     } 
     else if([email protected] != isDeleted) 
     { 
      MessageBox.Show("Student_ID not found or An error has occured!", "Delete Student", MessageBoxButtons.OK); 
     } 
    } 

我要检查,如果该元素已被删除,然后显示正确的消息框......我的返回值时删除是真的,但是当它在VS上检查它的响应时,它显示为false,显示“找不到Student_ID或发生错误!” 但该元素仍然被删除!任何原因为什么?

isDeleted = myRef.Delete(student_ID); 

你还没有返回值分配给isDeleted,做如上

+0

感谢它的工作=) – lifeTech

每当从列表中删除的项目总是从年底开始去。索引得到搞砸,如果你不

for (int i = nList2.getLength() - 1; i >= 0; i--) 
+0

谢谢,将注意:) – lifeTech