LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Значение атрибу...
 Значение атрибута в XML...
 
 25.04.2011 0:31:09
Aleck_b
11 сообщения


Значение атрибута в XML...
Здрасьте.
Вопросв несколько:
1) Есть XML-файл, а в нем узел, допустим
3
Как прочитать значение атрибута "name" в узле "uzel"? Т.е. как прочитать "батон"?
2) Для чего используется ".Attributes"?
3) Как определить какие атрибуты есть в данном узле? Т.е. , допустим
3
Нужно определить, что в узле "uzel" есть атрибут "name"?

Заранее благодарен.
 25.04.2011 20:46:55
Admin1
731 сообщения
1-ый


Re: Значение атрибута в XML...

Вот ветка, где говорили об xml http://help.leadersoft.ru/tabid/74/forumid/1/threadid/9204/scope/posts/Default.aspx

Ответы:
1. Dim
objElem As MSXML2.IXMLDOMElement
    '  Найти 1 элемент 'uzel'
    Set objElem = objXML.selectSingleNode("//uzel")
    Debug.Print objElem.getAttribute("name")

2. Нажмите F2, введите attributes и получите описание
    Member of MSXML2.DOMDocument
    the collection of the node's attributes

3. objElem.getAttribute("name") - Если будет ошибка, то атрибута name нет или читайте массив атрибутов

 26.04.2011 2:17:57
Aleck_b
11 сообщения


Re: Значение атрибута в XML...
Тогда, плиз, еще пару вопросов:
1) Чем отличается IXMLDOMElement от IXMLDOMNode?
2) Возможно ли получить значение атрибута IXMLDOMNode а не IXMLDOMElement?
3) Как из IXMLDOMElement получить IXMLDOMNode?

Т.е. по XML-файлу я двигаюсь с помощью IXMLDOMNode (например, Set domChild = .childNodes(intChild) где domChild - это IXMLDOMNode) и мне необходимо получить значение атрибута "name" в domChild. Как это сделать?

С уважением, Алексей.
 26.04.2011 9:23:05
Admin1
731 сообщения
1-ый


Re: Значение атрибута в XML...

Самое главное в этом вопросе научиться пользоваться отладчиком. Запоминать, что содержит каждый элемент класса - это нереально. Ставите точку прерывания в нужном месте и смотрите в перемнных значения. Запоминать нужно только название класса и для чего он нужен и желательно недостатки. Данный класс читает XML файл, позволяет двигаться по нему, НО ОЧЕНЬ медленный и не годится для чтения больших файлов.

Вот короткий пример чтения во внутренню переменную XML файл имен и атрибутов одной функцией GetData
   Set RootNode = xmlDoc.selectSingleNode("yml_catalog/shop")
   For Each ProgNode In RootNode.selectNodes("program")
        With Program
                 '  Данные по ценам программы allsoft.ru
                Set nodes2 = nd.selectSingleNode("prices")
                k = 0
                For Each nd2 In nodes2.selectNodes("price")
                    ReDim Preserve .versions(j).prices(k)
                    .versions(j).prices(k).id = GetData(nd2, "id", -1, "attr")
                    .versions(j).prices(k).name = GetData(nd2, "name")
                       k = k + 1
                Next
 ...

' Читаем узел
Public Function GetData(nd As IXMLDOMElement, NameData As String, Optional DefaultValue As String = "", Optional TypeData As String = "Text") As Variant
    On Error GoTo 999
    If TypeData = "Text" Then
        GetData = nd.selectSingleNode(NameData).Text
    Else
        GetData = nd.Attributes.getNamedItem(NameData).Text
    End If
    Exit Function
999:
    GetData = DefaultValue
End Function

  Программирование  Microsoft Access. Файлы mdb и accdb  Значение атрибу...
ПоискПоиск  Список форумовСписок форумов  
right