Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft Access |
![]() ![]() |
Архимедофф Member Откуда: Сообщений: 379 |
Друзья, подскажите по такому вопросу. Вытаскиваю часть данных из XML, используя @class='com.nokia.srbts.tnl:IPADDRESSV4'. Т.к. этот класс встречается несколько раз, то мне нужно знать, чему равен distName у него (см.картинку). По нему я понимаю к чему относится localIpAddr. Можно конечно искать по @distName, но в нем меняются значения IPIF. Тогда надо знать сколько значений и каких в IPIF, для того чтобы загнать в переменную и пройтись в цикле. На мой взгляд - это будет не правильно. В парсинге я несилён. Все наработки с этого форума. Что дописать в коде, чтобы увидеть, чему равен distName? И ещё. Знак любого символа какой в данном случае? Например попытался сделать так и не прокатило: @distName='MRBTS-605775/TNLSVC-1/TNL-1/IPNO-1/IPIF-*/IPADDRESSV4-1']/p[@name='localIpAddr'] Думаю вопрос мой на поверхности лежит. Спасибо.
К сообщению приложен файл. Размер - 18Kb |
|
9 фев 19, 16:56 [21805301] Ответить | Цитировать Сообщить модератору |
court Member Откуда: Сообщений: 1580 |
что-то типа этого:strNodes = "/raml/cmData/managedObject[@class='com.nokia.srbts.tnl:IPADDRESSV4']/p[@name='localIpAddr']" For Each objXmlSingleNode In objXmlDoc.selectNodes(strNodes) OAMIP = objXmlSingleNode.Text Debug.Print "OAMIP = " & OAMIP ' так Debug.Print objXmlSingleNode.parentNode.Attributes.getNamedItem("distName").Text ' или сразу так Debug.Print Split(objXmlSingleNode.parentNode.Attributes.getNamedItem("distName").Text, "/")(4) Next |
11 фев 19, 11:14 [21806170] Ответить | Цитировать Сообщить модератору |
Архимедофф Member Откуда: Сообщений: 379 |
court спасибо. И еще такой любопытный вопрос. Могу ли как-то обратиться к конкретному значению, минуя конструкцию For Each... Next, если я знаю, что это значение в XML единственное, чтобы сразу присвоить назначенной переменной. Например, то что закомментировано на картинке, будут переменными. К сообщению приложен файл. Размер - 4Kb |
11 фев 19, 16:52 [21806646] Ответить | Цитировать Сообщить модератору |
court Member Откуда: Сообщений: 1580 |
selectSingleNode вроде так oamip = objXmlDoc.selectSingleNode("/raml/cmData/managedObject[@class='IPNO']/p[@name='mPlaneIpAddress']").Text lteip = objXmlDoc.selectSingleNode("/raml/cmData/managedObject[@class='IPNO']/p[@name='uPlaneIpAddress']").Text |
||
11 фев 19, 17:20 [21806683] Ответить | Цитировать Сообщить модератору |
Архимедофф Member Откуда: Сообщений: 379 |
court, Вот спасибо. Если путь несколько длиннее, например: strNodes =/raml/cmData/managedObject[@class='com.nokia.srbts.tnl:IPADDRESSV4']/list[@name='cPlaneList']/itemp[@name='ipV4Address'] , то вот так (objXmlSingleNode.parentNode.Attributes.getNamedItem("distName").Text ) не получилось увидеть distName :( Фактически distName желательно знать всегда для дальнейшей обработки файла. |
12 фев 19, 13:52 [21807363] Ответить | Цитировать Сообщить модератору |
court Member Откуда: Сообщений: 1580 |
objXmlSingleNode.parentNode.parentNode.Attributes.getNamedItem("distName").Text |
||
12 фев 19, 14:33 [21807425] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft Access | ![]() |