如何使用XQuery获取标记参数值

时间:2010-03-19 10:58:11

标签: qt xquery

例如我有这个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"/>,但我只需要文本“bar”而没有任何标记。 我尝试删除<p></p>并接收syntax error, unexpected {

如何在没有任何标签的情况下获取参数值?

3 个答案:

答案 0 :(得分:2)

如果您尝试仅序列化某个属性,则会出现错误。您可能最好只检索属性的值:

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

答案 1 :(得分:1)

对不起有点晚了... 试试

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

只返回属性的文本值

答案 2 :(得分:0)

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