Получить типы вместо токенов узлов (XML/XPath)

У меня есть эта 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? Я пробовал, но не нашел решения.

Я действительно не знаю, что вы имеете в виду под «типами» и «токенами» здесь, вы, кажется, используете слова с нетрадиционным значением.

Michael Kay 12.03.2019 17:01

@МайклКей en.wikipedia.org/wiki/…

tunaturner 12.03.2019 17:59

К сожалению, и «тип», и «токен» имеют разные значения в языке XPath.

Michael Kay 12.03.2019 19:40
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
46
2

Ответы 2

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

Важно отметить, что это работает только с XPath-2.0.

zx485 12.03.2019 14:48

Спасибо, но это я уже пробовал. Я получаю эту ошибку: Uncaught DOMException: Не удалось выполнить «оценку» для «Документа»: строка «различные значения (// расположение)» не является допустимым выражением XPath. показать результат xhttp.onreadystatechange

tunaturner 12.03.2019 14:49

Есть ли веская причина, по которой вы не можете использовать процессор XPath 2.0? Даже в мире Javascript существуют процессоры XPath 2.0.

Michael Kay 12.03.2019 17:02

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

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

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

Другие вопросы по теме