Здравствуйте!
Требуется присвоить переменным значения атрибутов 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 модели вручную.