2014-10-16 93 views
0

我有一个xml文件,我必须删除特定的元素。在这种情况下,如果给定了docotor ID,则需要删除特定的医生。该XML看起来是这样的:从xml中删除元素vb

<Doctor> 
<DoctorID>1</DoctorID> 
<FirstName>John</FirstName> 
<LastName>Doe</LastName> 
<Specialty>Family</Specialty> 
</Doctor> 
<Doctor> 
<DoctorID>2</DoctorID> 
<FirstName>James</FirstName> 
<LastName>Kameron</LastName> 
<Specialty>Obstetric</Specialty> 
</Doctor> 

我的VB代码如下所示:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 

    Dim doc As New Xml.XmlDocument 
    doc.Load("..\..\..\Doctors.xml") 

    Dim ID As String 
    ID = DGV_1.CurrentRow.ToString() 

    Dim DoctorNodes = doc.SelectNodes("//Doctor//DoctorID") 
    For Each elem As Xml.XmlElement In DoctorNodes 
     If elem.InnerText = ID.ToString Then 
      elem.RemoveAll() 
      ''elem.ParentNode.RemoveChild(elem) 
      Exit For 
     End If 
    Next 
    MessageBox.Show(doc.OuterXml) 

End Sub 

但似乎我输了,谁知道我需要做的就是这个工作?

回答

0

我是vb和xml的新手,但是我阅读了一些可能对您有帮助的内容: 您可以搜索具有特定值的子节点的xml节点,然后修改该节点。

像:医生/医生[DoctorID = 1]

Dim ID as String = Textbox1.Text 
Dim DoctorNodes = doc.SelectNodes("Doctor[DoctorID=" & ID & "]") 
doc.RemoveChild(DoctorNodes(0)) 

看看这里:http://en.wikipedia.org/wiki/XPath