Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: xml Добавлено: 06.10.05 22:09  

Автор вопроса:  Neco | Web-сайт: neco.pisem.net | ICQ: 247906854 
В своё время столкнувшись с sql, я поразился простоте, с которой можно было работать с запросами, от которой попахивало гениальностью создателей.
От xml (хотя это, конечно, вещи разных категорий) ничем таким не пахнет.
Чтобы прочитать файл с элементарной структурой мне пришлось ромадить такой код:

        Dim reader As New Xml.XmlTextReader(Application.StartupPath + "\myXML.xml")
        reader.WhitespaceHandling = Xml.WhitespaceHandling.None
        While reader.Read()
            'Debug.WriteLine(reader.Value + " ---- " + reader.Name + " ++++ " + reader.NodeType.ToString)
            If reader.NodeType = Xml.XmlNodeType.Element Then
                If reader.Name = "record" Then
                    If reader.Read Then
                        If reader.Name = "name" Then
                            If reader.Read Then
                                Debug.WriteLine(reader.Value)
                            End If
                        End If
                    End If
                    If reader.Read Then
                        If reader.Name = "hours" Then
                            If reader.Read Then
                                Debug.WriteLine(reader.Value)
                            End If
                        End If
                    End If
                    If reader.Read Then
                        If reader.Name = "description" Then
                            If reader.Read Then
                                Debug.WriteLine(reader.Value)
                            End If
                        End If
                    End If
                End If
            End If
        End While

Нервы сдали - отлаживать его я уже не стал.
Я-то думал счас создам структуру по форме похожую на листья моего дерева и всё само-собой произойдёт, а тут хрень какая-то.
ПОЖАЛУЙСТА!
Не дайте мне разочароваться - киньте кто-нить хорошей инфой или разъясните сами базу xml - в чём прикол, вообще?
К примеру, что надо сделать, чтобы считать этот файл:
<?xml version="1.0" standalone="yes"?>
<data>
  <record>
    <name>Dan</name>
    <hours>5</hours>
    <description>First job</description>
  </record>
  <record>
    <name>Jill</name>
    <hours>3</hours>
    <description>Second job</description>
  </record>
  <record>
    <name>Neco</name>
    <hours>8</hours>
    <description>chagala</description>
  </record>
  <record>
    <name>gnm</name>
    <hours>ncvjb</hours>
    <description>cvbnvbn</description>
  </record>
</data>
в массив таких переменных:

    Private Structure tRecord
        Public name As String
        Public hours As Integer
        Public description As String
        Public Shadows Function ToString() As String
            Return "name:" + name + "; hours:" + hours.ToString + "; description:" + description
        End Function
    End Structure

?

Ответить

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

Номер ответа: 1
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #1
Добавлено: 07.10.05 11:00
вот тоже интересно, и вот что нашел:
http://www.devguru.com/Technologies/xmldom/quickref/xmldom_index.html

все описано и с примерами

Ответить

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



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #2
Добавлено: 07.10.05 21:58
Тьма. 8)
Спасибо - банально "буду разбираться".

Ответить

Номер ответа: 3
Автор ответа:
 Sur



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #3
Добавлено: 11.10.05 10:39
Если кто разбирался: как правильно фильтровать nodeName с именем #text ?

Option Explicit
Private MSXML As Object
Private XML_Root As Object
Private XML_Child As Object
Private XML_Attr As Object
Private XML_Attrs As Object

Private Sub Form_Load()
Set MSXML = CreateObject("MSXML2.DOMDocument";)
MSXML.async = False
If MSXML.Load(App.Path & "\tst.xml";) Then
 Set XML_Root = MSXML.documentElement
 RecurseXML XML_Root
End If
End Sub
Private Sub RecurseXML(obj_XML As Object)
For Each XML_Child In obj_XML.ChildNodes
If Left$(XML_Child.NodeName, 1) <> "#" Then ' #text ?
 'ноды
 List1.AddItem XML_Child.NodeName & " = " & XML_Child.nodeTypedValue
 If XML_Child.hasChildNodes Then
  RecurseXML XML_Child
 End If
End If
Next
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #4 Добавлено: 11.10.05 11:09
Я делал примерно так
Private Sub FindChildNoteXML(inNode As IXMLDOMNode)
  Dim oNode1 As IXMLDOMNodeList
  Set oNode1 = inNode.childNodes
...
...
If oNode1.Item(k).nodeType = NODE_TEXT Then ...

End if
...

Ответить

Страница: 1 |

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



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