XPath: найти значение и вернуть также путь, ведущий туда - PullRequest
0 голосов
/ 03 мая 2018

Я хотел бы найти все вхождения тега в XML и вернуть их с их родителем (или, возможно, со всеми их предками). Я не хочу полных предков, а только тег родителя (или всех предков).

Пример:

<a>
  <b>
    <c/>
    <d/>
  </b>
  <e>
    <c/>
    <d/>
  </e>
</a>

Для этого я хотел бы получить <b><c/></b> и <e><c/></e>, но они не должны содержать <d/>. (Получение <a><b><c/></b></a> и <a><e><c/></e></a> также будет в порядке.)

Имя тега c является фиксированным, в то время как b и e неизвестны (и поэтому должны быть частью результата поиска).

Есть ли способ получить путь к результату поиска?

Я пробовал это:

  • //a//c → Но это возвращает только два <c/>.
  • //a//*[c] → Но это возвращает полные <b> и <e> вместе с их содержанием <d/> (что в моем случае настолько велико, что загромождает результат так, что мне нужно было бы искать снова в этом).
...