Быстрый ответ; да, ../ и parent :: * эквивалентны, но вы получите разные результаты, потому что ваши выражения XPath отличаются.
Более длинный ответ;
Выражения parent :: node () и .. эквивалентны, причем последний является сокращенной формой первого согласно Рекомендации W3C XPath .
Вы получите похожее поведение от parent :: *, потому что XML формирует дерево, поэтому любой дочерний элемент может иметь не более одного родителя.
Причина, по которой вы получите разные результаты, заключается в том, что это разные запросы. Первый имеет дополнительный * в конце (../../*), который, вероятно, возвращает последовательность дочерних элементов вашего узла.
Второй получает именно родительский элемент родительского узла контекста (в сокращенной форме ../ ..), который является вашим интересующим элементом Node.
Пример:
Для документа
<?xml version="1.0" encoding="UTF-8"?>
<root>
<Node>
<id type="image">
<id attr1="myVal"> </id>
</id>
</Node>
</root>
Запросы
//Node/id[@type='image']/id[@attr1='myVal']/../../*
и
//Node/id[@type='image']/id[@attr1='myVal']/parent::*/parent::*/*
вернуть идентификатор узла [@ type = 'image']
В то время как запросы
//Node/id[@type='image']/id[@attr1='myVal']/../..
и
//Node/id[@type='image']/id[@attr1='myVal']/parent::*/parent::*
вернуть узел узла.