Как получить значение параметра тега с помощью XQuery - PullRequest
2 голосов
/ 19 марта 2010

Например, у меня есть этот XML. Мне нужно получить значение параметра val тега foo с id="two"

<top>
    <sub id="one">
        <foo id="two" val="bar" />
        sometext
    </sub>
</top>

По какому запросу (используя Qt QXmlQuery):

doc('test.xml')/top/sub[@id='one']/foo[@id='two']/<p>{@val}</p>

Я получаю <p val="bar"/>, , но мне нужен только текстовый "бар" без тегов Я пытался удалить <p> и </p> и получить syntax error, unexpected {

Как получить значение параметра без тегов?

Ответы [ 3 ]

2 голосов
/ 19 марта 2010

Если вы попытаетесь сериализовать только атрибут, вы получите ошибку. Возможно, вам лучше получить значение атрибута:

doc('test.xml')/top/sub[@id='one']/foo[@id='two']/@val/data(.)
1 голос
/ 18 мая 2010

Извините, немного поздно в тот день ... попробуйте

data(doc('/db/test/test.xml')/top/sub[@id='one']/foo[@id='two']/@val)

, который возвращает только текстовое значение атрибута

0 голосов
/ 19 марта 2010
doc('test.xml')/top/sub[@id='one']/foo[@id='two']/@val
...