Получить элементы с атрибутом у которых нет namespace

Первоначально я просто взял xml из сети первый попавшийся и думал, что есть способ через namespace-uri как то отсеять элементы с перефиксами\нэймспасе. Вы предложили интересный способ через сравнения локального и полного имени на уровень выше, это для первого примера работает.

Но для меня нужно чтобы любые элементы вложенные в элементы с перефиксами\нэймспасе были отброшены. Поэтому я привёл другой пример вымышленный, но уже с вложенным элементом, что через сравнение local-name и name уже не работает. Попытался объяснить, что мне нужны элементы, которые дочерние корневому, но не вложенные в элементы с перефиксами.

Xpath выбирает все дочерние и вложенные в дочерние игнорируя перефиксы, это путает мне все.

То есть мне нужно отобрать элементы с нужными атрибутами, но чтобы они не были внутри элементов с перефиксами\нэймспасе.

Добавлено через 1 час 3 минуты

Можно ли отобрать элементы у которых нет родителя с перефиксом на любом уровне выше?

что-то по типу .//@id/ancestor::*[name()=local-name()]

XMLВыделить код

1
2
3
4
5
6
7
8
9
10
11

<xml xmlns:prfx="link">
  
    <eee1 id="z1">111
    <prfx:name>
      
        <ccc id="c">CCC
      
    </prfx:name>
  
  <eee2 id="z2">222


Добавлено через 32 минуты

Ещё мысль отобрать только дочерние элементы без вложенных в дочерние, отбросить с перефиксами и отобрать с нужными атрибутами, такой вариант меня наверно бы устроил. Но как это сделать если xpath выбирает всё подряд и дочерние и вложенные