Как сопоставить элемент списка с помощью XQuery <intValues>1 2 3 </intValues> - PullRequest
1 голос
/ 24 марта 2009

Я пытаюсь сопоставить идентификаторы, сохраненные как элемент list , используя XQuery.

Например,

<data>
    <item>
        <name>foo</name>
        <intValues>1 2 3 4 5</intValues>
    </item>
    <item>
        <name>bar</name>
        <intValues>6 7 8 9 10</intValues>
    </item>
</data>

можно ли вернуть предметы, включающие 3 в intValues?

Ответы [ 2 ]

3 голосов
/ 24 марта 2009

можно ли вернуть предметы, которые включить 3 в intValues?

Это выражение XPath выбирает ровно все item элементов, которые имеют «3» в качестве одного из списка значений, содержащихся в их intValues child :

/*/item['3' = tokenize(intValues, ' ')]

2 голосов
/ 24 марта 2009

Если в вашем XML-файле есть схема, и вы используете процессор с поддержкой схемы, тогда запрос просто

/data/item[intValues = 3]

в противном случае, как предполагает Димитр, вам придется токенизировать это вручную.

...