2010-12-05 8 views
0

Я разбор некоторых элементов XML с помощью XmlTextReader и ищу элементы мне нужно, используя различные textreaders для каждого в другом цикле следующим образом:XML синтаксический анализ с использованием XmlTextReader

Dim treader As XmlTextReader = New XmlTextReader(New StringReader(item.ToString)) 
       While treader.Read 
        If treader.Name = "summary" Then 
         content = treader.ReadElementContentAsString 
         If String.IsNullOrEmpty(content) Then 
          content = "NOTHING" 
          Continue While 
         End If 
         contentList.Add(content) 
         Exit While 

        End If 
       End While 

и я сделать то же самое для каждого элемент, который я ищу. Теперь проблема возникает, когда я получаю результаты для каждого. Я использую arraylist для каждого элемента, и время от времени у меня будет неравное количество, например 100 для сводки, 100 для заголовка, 99 для id и т. Д. есть более эффективный способ сделать это, проверив запись, если все узлы тут же просто пропуская его, если это не так.

<entry> 
<summary> 
<id> 
<published> 
<uri> 
<rule> 
</entry> 

ответ

1

Я бы сделал объект записи и десериализовал xml как список объектов ввода. Это откроет дверь для linq и для каждой петли. Проверьте XmlSerializer Class. Надеюсь, ваши данные не имеют 99 идентификаторов и 100 других полей.

+0

спасибо за ваш ответ, попробуем это. Разница в подсчетах больше связана с некоторой ошибкой читателя в одной из циклов while, а затем пропускает другие. Если обнаруживать проблему с записью, я просто добавляю ее в отдельный список. – vbNewbie 2010-12-05 21:46:59

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