Вот моя проблема ... Мне нужно выбрать все во всем XML-документе, но пропустить один тег.К сожалению, этот тег может иметь разную глубину.
Используя следующий пример кода, я хотел бы удалить все элементы <crud>
, <crud2>
и <...>
(и т. Д.).<crud>
может иметь больше детей, но я все равно их не хочу.
<body>
<h2/>
<crud>
<crud2/>
<...>
</crud>
<div>
<p> </p>
</div>
<div>
<p>
</p>
<crud>
<crud2/>
<...>
</crud>
</div>
</body>
Я пробовал несколько методов.
let $body := "the xml sample"
return $body/*[fn:not(descendant-or-self::crud)]
Этот метод требует много.Он удаляет весь блок <div>
, который содержит crud, но мне нужны <div>
и <p>
, которые включены.Кажется, что все другие методы удаляют только прямые <crud>
дочерние элементы <body>
, либо он также удаляет контейнер.
Итак, мне по существу нужен метод, который достигает каждого элемента и удаляет все <crud>
без всякого другого.
Окончательный XML должен выглядеть следующим образом:
<body>
<h2/>
<div>
<p> </p>
</div>
<div>
<p>
</p>
</div>
</body>
Я очень ценю любую помощь.