squidboy Ответов: 1

Извлечение значений атрибутов из xmlnode:name


Я не могу понять, как получить значения атрибутов из приведенного ниже XML-файла.

Этот вывод XML исходит из системы, которую я не могу контролировать
но я обязан разобрать его для клиента.

то есть, как бы я получил значение "periodBeginDate"?

'<pd:categorypd>
'<vs:period sysid="1"
'periodType="daypart"
'name="сдвиг"
'periodSeqNum="972"
'periodBeginDate="2018-11-05T23:59:06-07:00"
'periodEndDate="2018-11-06T23:59:06-07:00"/>
'<vs:сайт>1
' .
' .
' .
'

Заранее спасибо!

Что я уже пробовал:

Я погуглил 'vb.net получить атрибуты Xmlnode:name
в различных формах но приведенные примеры этого не делают
адресуйте форму узла, содержащего символ ':' с именем после него.

Richard Deeming

Где находятся объявления пространства имен XML? Там должны быть атрибуты, которые выглядят так: xmlns:pd="..." и xmlns:vs="..." где-то выше в документе.

squidboy

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

squidboy

Я наконец-то понял, о чем вы говорите, но не знаю, как использовать эту информацию.

<?xml version="1.0" encoding="UTF-8"?>

<pd:categoryPd
xmlns:vs="urn:vfi-sapphire:vs 2001-10-01"
описание:топливо="урна:компании VFI-сапфир:топливо.2001-10-01"
описание:основание="урна:компании VFI-сапфир:базовый.2001-10-01"
описание:ПД="урна:компании VFI-сапфир:ПД.2002-05-21"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

&ЛТ;ВС:период
sysid="1"
periodType="daypart"
name="сдвиг"
periodSeqNum="972"
periodBeginDate="2018-11-05T23:59:06-07:00"
periodEndDate="2018-11-06T23:59:06-07:00"/>

<vs:сайт>1
.
.
.

1 Ответов

Рейтинг:
2

squidboy

Спасибо за ваш ответ.
Эта работа. Я двигаюсь дальше.

Dim root As XmlNode = XMLdoc.DocumentElement
        With root
            For i As Integer = 0 To .ChildNodes.Count - 1
                Select Case .ChildNodes.Item(i).Name
                    Case "vs:period"
                        Debug.Print(.ChildNodes.Item(i).Attributes("periodBeginDate").Value.ToString)
                        Exit For
                End Select
            Next
        End With