jslt как ссылаться на элемент из родительского узла

#json

#json

Вопрос:

Я пытаюсь вычислить некоторые переменные с помощью jslt. У меня есть json, похожий на этот:

 {
"total_amount": 5349,
"total_amount_currency": "USD",
"latest_reservation_date": "05-24-2022",
"reservations":[

    "reservation1": {
        "amount": "3284",
        "currency": "USD",
        "reservation_date": "02-14-2021",
        "countries_visited": [
            "country1": {"Malaysia"},
            "country2": {"Singapore"},
            "country3": {"Brunei"}
        ]
    },
    "reservation2": {
        "amount": "2065",
        "currency": "USD",
        "reservation_date": "05-24-2022",
        "countries_visited": [
            "country1": {"South Africa"},
            "country2": {"Namibia"}
        ]
    }
]
}
 

и, повторяя "countries_visited" массив, я хотел бы сослаться, скажем, на элемент в родительском узле "reservation_date" , но я не знаю, как это сделать. Заранее спасибо за любую помощь!!

Ответ №1:

В JSLT нет оператора для перехода к родительскому узлу, поскольку это позволяет нам повысить производительность за счет повторного использования входных узлов в дереве вывода.

Самый простой способ решить эту проблему — поместить ссылку на родительскую переменную в переменную перед выполнением цикла. Затем вы можете обратиться к переменной внутри цикла, и все будет работать.