2013-08-30 2 views
0

Я пытаюсь отредактировать узел «Доход» и добился этого с помощью текущего кода. Однако все остальные элементы (RptMenu и Icon) удаляются. Я хочу, чтобы они оставались в XML-файле, и только доход был изменен на все, что задает текстовое поле. Выбирается, чтобы выбрать, какой MenuItem (доход, запас и т. Д.) Должен быть изменен.Как отредактировать узел XML с помощью combobox (VB.Net)

XML код: (Там будут пункты меню не включены, чтобы сохранить его простым)

<ReportMenu> 

<RptMenu category="Menu"> 
    <MenuItem>Income</MenuItem> 
    <Icon>C:\Documents\Visual Studio 2008\Projects\Menu\Menu\Resources\IncomeImage.jpg</Icon> 
    </RptMenu> 

<RptMenu category="Menu"> 
    <MenuItem>Stock</MenuItem> 
    <Icon>C:\Documents\Visual Studio 2008\Projects\Menu\Menu\Resources\IncomeImage.jpg</Icon> 
    </RptMenu> 

</ReportMenu> 

vb.net Код:

Private Sub btnEditCategory_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEditCategory.Click 

Dim xd As New XmlDocument() 
     xd.Load("C:\Documents\Reports.xml") 

     Dim newNode As XmlElement = xd.CreateElement("MenuItem") 
     newNode.InnerText = txtAddCategory.Text 

     For Each oldNode As XmlNode In xd.SelectNodes("ReportMenu/RptMenu") 

      If oldNode.SelectSingleNode("MenuItem").InnerText = cmbCategory.Text Then 
       oldNode.ParentNode.ReplaceChild(newNode, oldNode) 
      End If 

     Next 
     xd.Save("C:\Documents\Reports.xml") 

    End Sub 

ответ

Смежные вопросы