Russian Qt Forum
Июнь 17, 2024, 01:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Xml XQuery - как получить значение атрибута в программе?  (Прочитано 4141 раз)
slawa
Гость
« : Апрель 13, 2009, 08:01 »

Здравствуйте!

Требуется присвоить переменным значения атрибутов xml элемента. Пытаюсь сделать это на примере recipes для time::quantity:
Код
XML
<?xml version="1.0" encoding="UTF-8"?>
<cookbook>
   <recipe xml:id="MushroomSoup">
       <title>Quick and Easy Mushroom Soup</title>
       <ingredient name="Fresh mushrooms"
                   quantity="7"
                   unit="pieces"/>
       <time quantity="20"
             unit="minutes"/>
   </recipe>
</cookbook>
 

пытаюсь так:
Код
C++ (Qt)
query.bindVariable("v", v);
QString xq  ="declare variable $v external;let $v:=doc('cookbook.xml')/cookbook/recipe/time/@quantity";
query.setQuery(xq);
//...
query.evaluateTo(&formatter);
 
это дает runtime ошибку. Пробовал различные варианты запроса, но безуспешно.
При этом запрос вида
Код
C++ (Qt)
QString xq  ="doc('cookbook.xml')/cookbook/recipe/<ttime t=\"{time/@quantity}\"/>";
 
возвращает ожидаемый результат:
Код
XML
<ttime t=\"20"/>
 

Вопрос: Как правильно извлечь значение атрибута из xml файла?
Хочется сделать это через запрос, что бы избежать обхода DOM модели вручную.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.08 секунд. Запросов: 20.