Получение строкового содержимого сложного смешанного элемента с помощью XQuery - PullRequest
0 голосов
/ 11 мая 2009

Например, есть 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. I.e.:

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 голосов
/ 11 мая 2009

$ article - это элемент, а не узел. Чтобы получить текст (текст, который вы хотите на самом деле является текстовым дочерним узлом узла $ article), вам просто нужно:

 {$article/text()}
...