Точное значение этого xpath

Я наткнулся на эту строку XPath...

courses[?(@.id==101)].students[?(@.id==111)]

Я даже не уверен, что это правильный XPath из-за того, как '?' а также '.' используются. И это не работает во многих онлайн-оценщиках XPath.

Хотя в XPath 3 есть оператор поиска ('?') И некоторые функции сканирования JSON. Обратитесь: https://www.altova.com/training/xpath3/xpath-31

Итак, мне интересно, в чем именно предназначение "?()" И "." являются.

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

Угадать объект JSON можно так:

{
    "courses":[
        {
            'id':'101', 
            'name':'Course 101', 
            'students':[
                { 
                    'id':'111', 
                    'name':'Student 111' 
                }
            ]
        }   
    ]
}

Короче говоря, допустимое ли это выражение XPath 3? И если да, то что же такое '?()' И '.' делаешь?

1 ответ

JSON может работать только с двойными кавычками

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