Вместо этого получите типы токенов узлов (XML / XPath) - PullRequest
1 голос
/ 12 марта 2019

У меня есть XML-база данных:

<database>
    <event>
        <location> abc </location>
    </event>
    <event>
        <location> abc </location>
    </event>
    <event>
        <location> abc </location>
    </event>
    <event>
        <location> def </location>
    </event>
    <event>
        <location> def </location>
    </event>
<database>

И я попытался получить этот вывод с помощью XPath:

abc
def

Типы узла местоположения.

Если я использую

//location

, на выходе будут токены:

abc
abc
abc
def
def

Возможно ли это даже с XPath?Я попробовал, но не нашел решения.

Ответы [ 2 ]

2 голосов
/ 12 марта 2019

Группировать в строгом XPath 1.0 можно с помощью этого выражения:

/database
    /event
        /location[
            not(. = ../preceding-sibling::event/location)
        ]

Примечание : Это имеет квадратичную сложность. В небольших документах вам не стоит об этом беспокоиться.

1 голос
/ 12 марта 2019

Использование: distinct-values(//location)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...