使用XQuery获取复杂混合元素的字符串内容

时间:2009-05-10 20:23:04

标签: xml xquery

例如,有一个xml:

<article-list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="3.xsd">
    <article section="physics">
        Increasing linear dynamic range of commercial digital photocamera
        <author>M. V. Konnik</author>
        <content>
            Methods of increasing linear optical dynamic range
        </content>
    </article>

我的目标是查询article元素的字符串内容。即:

Increasing linear dynamic range of commercial digital photocamera

这样明显的解决方案:

<!--xquery-->
{
for $article in doc("name.xml")//article-list/article
    where $article/receiving-date > xs:date("2005-01-01")
    return
        <article>
            {$article}
        </article>
}

返回整个article树,而不仅仅是一个字符串。

1 个答案:

答案 0 :(得分:0)

$ article是一个元素,而不是一个节点。要获取文本(您想要的文本实际上是$ article节点的文本子节点),您只需要:

 {$article/text()}