2016-11-05 122 views
1

我正在使用一個簡單的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或發生錯誤!」 但該元素仍然被刪除!任何原因爲什麼?

回答

0
isDeleted = myRef.Delete(student_ID); 

你還沒有返回值分配給isDeleted,做如上

+0

感謝它的工作=) – lifeTech

0

每當從列表中刪除的項目總是從年底開始去。索引得到搞砸,如果你不

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

謝謝,將注意:) – lifeTech