The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Value из узла xml на С средствами libxml2"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Контроль версий, Git, SVN, Bazaar, Mercurial)
Изначальное сообщение [ Отслеживать ]

"Value из узла xml на С средствами libxml2"  –1 +/
Сообщение от geltkov (ok) on 29-Янв-16, 12:29 
Имеется документ XML, а в нём строка *:  
<op_mode value="2460" comment="Режим работы: 0 - основной, 0х8000 - технологический"/>
Требуется извлечь из строки * численное значение параметра value средствами языка 'Си' с использованием библиотеки libxml2.
Удалось получить указатель на узел для этой строки *: cur, cur->name = "op_mode".
Удалось получить у этого узла properties, причём properties->name = "value".
Однако попытка извлечь значение xmlGetProp(cur->properties, cur->properties->name) выводит в качестве значения символы "=DQjv", которые, как проверено,- от замены кода в строке * (здесь код = 2460) не зависит.
Знаниями не богат, но в них нуждаюсь. Прошу подсказать.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Value из узла xml на С средствами libxml2"  +/
Сообщение от arka on 31-Янв-16, 14:09 
А разве не просто:

xmlGetProp(cur, "value");

должно быть?

http://www.xmlsoft.org/tutorial/apg.html

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Value из узла xml на С средствами libxml2"  +/
Сообщение от geltkov (ok) on 02-Фев-16, 10:19 
Спасибо за предположение.
Мне приходится говорить только о предположении, поскольку понимание самих объектов дерева XML приходит со временем.
В данном примере, видимо, объект с именем op_mode не является атрибутом, поэтому попытка извлечь из него значение, как вы предлагаете, даёт негативный результат
xmlGetProp(cur, "value") == NULL, как показала проверка исполнением.
Я попробовал предположить, что  объект с именем op_mode - это узел (Node). И тогда в мою помощь поступает одна из функций узла:
xmlNodeGetContent(const xmlNode * ...);Тип возвратного кода: const xmlChar *
О, чудо! - Эта функция и вывела мне моё искомое значение.
Я пересмотрел заголовочный tree.h и не нашёл ничего подобного. Возможно, обнаруженное решение - единственное.
Спасибо за внимание.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor