Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: проблема с XML Добавлено: 12.04.08 00:03  

Автор вопроса:  VoVaN | ICQ: 4921085 
Господа, помогите пожалуйста с XML... Не могу разобраться, как прочитать потомков только данной ветки, а не всех сразу...
Dim XMLDoc As System.Xml.XmlDocument ' XML Документ
        Dim XPNavigator As System.Xml.XPath.XPathNavigator 'Навигатор по документу
        Dim XPNIterator As System.Xml.XPath.XPathNodeIterator ' Список веток в документе
        ListBox1.Items.Clear()
        Try
            XMLDoc = New System.Xml.XmlDocument 'создали объект
            XMLDoc.Load(Application.StartupPath + "\base\Simp\" & ComboBox1.SelectedItem & ".xml")
            XPNavigator = XMLDoc.CreateNavigator 'из документа получили навигатор

            XPNIterator = XPNavigator.Select("Razdel/group/simp") 'из навигатора получили итератор(список)
            While XPNIterator.MoveNext 'Работаем через итерацию
                XPNIterator.Current.MoveToFirstAttribute() 'Двигаем к первому атрибуту
                Do
                    XPNIterator.Current.MoveToFirstChild() 'К первому потомку
                    Do

                        Select Case XPNIterator.Current.Name
                            Case "name"
                                ListBox1.Items.Add(XPNIterator.Current.Value)
                                simpt(num).name = XPNIterator.Current.Value
                                simpt(num).grp = ComboBox2.SelectedItem
                                simpt(num).razd = ComboBox1.SelectedItem
                            Case "l1"
                                simpt(num).n1 = XPNIterator.Current.Value
                            Case "l2"
                                simpt(num).n2 = XPNIterator.Current.Value
                            Case "l3"
                                simpt(num).n3 = XPNIterator.Current.Value
                        End Select
                        num += 1
                    Loop While XPNIterator.Current.MoveToNext 'К следующему потомку
                Loop While XPNIterator.Current.MoveToNextAttribute 'К следующему атрибуту
            End While
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

структура файла такова:
<Razdel>
<group name="1">
<simp name="1" l1="1" l2="1" l3="1">
<simp name="2" l1="2" l2="2" l3="2">
</group>
<group name="2">
и так далее...

</Razdel>

Так вот, как указать, что мне нужны только потомки из group с заданным аттрибутом name?

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 Алексей



black  admin

ICQ: 261779681 

Вопросов: 87
Ответов: 633
 Web-сайт: aleksey.nemiro.ru
 Профиль | | #1
Добавлено: 15.04.08 11:01
Так вот, как указать, что мне нужны только потомки из group с заданным аттрибутом name?

if (Razdel/group/@name == "1";)
{
  // ...
  Razdel/group/simp
  // ...
}

http://aleksey.nemiro.ru/Programming/Framework-NET/XML-Visual_Basic_NET.nspx

Ответить

Номер ответа: 2
Автор ответа:
 VoVaN



ICQ: 4921085 

Вопросов: 27
Ответов: 38
 Профиль | | #2 Добавлено: 15.04.08 13:25
сенк ю вери мач!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам