Помогите прочитать XML.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Vini
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 29.03.2004 (Пн) 5:40

Помогите прочитать XML.

Сообщение Vini » 14.02.2006 (Вт) 14:37

Привет всем кто сбда зашел!
Вот такой XML
Код: Выделить всё
<LineItems>
<LineItem>
<OrderLine>
  <PartNumberQualifier1>456</PartNumberQualifier1>
  <PartNumber1>0353153</PartNumber1>
  <PartNumber3>004152086325</PartNumber3>
  <PartDescription1>lenta</PartDescription1>
  <OrderQty>20</OrderQty>
  <OrderQtyUOM>eh</OrderQtyUOM>
  <UnitPrice>70.560</UnitPrice>
  <OuterPack>72</OuterPack>
  <InnerPack>20004</InnerPack>
</OrderLine>
</LineItem>
<LineItem>
<OrderLine>
  <PartNumberQualifier1>789456</PartNumberQualifier1>
  <PartNumber1>0353153</PartNumber1>
  <PartNumber3>004152086325</PartNumber3>
  <PartDescription1>plintus</PartDescription1>
  <OrderQty>20</OrderQty>
  <OrderQtyUOM>eh</OrderQtyUOM>
  <UnitPrice>170.000</UnitPrice>
  <OuterPack>50</OuterPack>
  <InnerPack>20004</InnerPack>
</OrderLine>
</LineItem>
<LineItem>
<OrderLine>
  <PartNumberQualifier1>7778852</PartNumberQualifier1>
  <PartNumber1>0353153</PartNumber1>
  <PartNumber3>004152086325</PartNumber3>
  <PartDescription1>plitka</PartDescription1>
  <OrderQty>95</OrderQty>
  <OrderQtyUOM>eh</OrderQtyUOM>
  <UnitPrice>59.000</UnitPrice>
  <OuterPack>56</OuterPack>
  <InnerPack>20004</InnerPack>
</OrderLine>
</LineItem>
</LineItems>


Помогите получить все LineItem со всеми данными.
Не знаю как построить loop в XML
Заранее спасибо.

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 14.02.2006 (Вт) 18:17

что конкретно не получается?

Vini
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 29.03.2004 (Пн) 5:40

Сообщение Vini » 14.02.2006 (Вт) 19:24

Dmitriy Solomnikov писал(а):что конкретно не получается?

конкретно не получается все, не знаю с чего начать.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.02.2006 (Вт) 21:57

Начни с подключения в Project -> References библиотеки Microsoft XML...
Изображение

Vini
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 29.03.2004 (Пн) 5:40

Сообщение Vini » 14.02.2006 (Вт) 22:45

Это я уже сделал, как на счет следующего шага?

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 14.02.2006 (Вт) 22:47

не берусь советовать, но мне кажется, что в твоем случае можно использовать DOM. Посмотри:
1. XMLDocument
2. GetElementsBy...
3. SelectNodes(), SelectSingleNode()

Vini
Обычный пользователь
Обычный пользователь
 
Сообщения: 93
Зарегистрирован: 29.03.2004 (Пн) 5:40

Сообщение Vini » 14.02.2006 (Вт) 23:02

Вот что пока полкчилось, только выводит данные одного сета,
Код: Выделить всё
Imports System.IO
Imports System.Xml

Module ParsingUsingXmlTextReader
    Sub main(ByVal xmlFile As String)
        Dim m_xmlr As XmlTextReader
        m_xmlr = New XmlTextReader(xmlFile)
        m_xmlr.WhitespaceHandling = WhitespaceHandling.None
        m_xmlr.Read()
        m_xmlr.Read()
        'Loop
        While Not m_xmlr.EOF
            m_xmlr.Read()
            If Not m_xmlr.IsStartElement() Then
                Exit While
            End If
            Dim OrderLine = m_xmlr.GetAttribute("OrderLine")
            m_xmlr.Read()

           
            Dim PartNumberQualifier1 = m_xmlr.ReadElementString("PartNumberQualifier1")
            Dim PartNumber1 = m_xmlr.ReadElementString("PartNumber1")
            'Write Result to the Console
            Console.WriteLine(PartNumberQualifier1 & " > " & PartNumber1)
            Console.Write(vbCrLf)
        End While
        'close the reader
        m_xmlr.Close()
    End Sub
End Module

Dmitriy Solomnikov
Постоялец
Постоялец
 
Сообщения: 407
Зарегистрирован: 10.11.2004 (Ср) 13:04
Откуда: Москва

Сообщение Dmitriy Solomnikov » 14.02.2006 (Вт) 23:50

Vini писал(а):Вот что пока полкчилось, только выводит данные одного сета,
Код: Выделить всё
            If Not m_xmlr.IsStartElement() Then
                Exit While
            End If
   


явно лишнее место в конструкции...просто убери этот кусок


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

    TopList