Я хотел бы удалить узлы, которым не хватает определенного дочернего элемента.Как удалить узел, у которого отсутствует ребенок с Ruby и Nokogiri
Например, я хотел бы, чтобы удалить второй <release>
узел здесь:
<release>
<artist>Johnny Cash</artist>
<album>Live from Folsom Prison</album>
</release>
<release>
<artist>Johnny Cash</artist>
</release>
Я пробовал: doc.xpath("//Release[album='']").remove
, но это явно не работает, потому что мне нужно найти узлы, где альбом не существуют, а не там, где они пусты.
Альтернативой мне было бы нужно вернуть что-то вроде «пустого» для любого узла, где альбом не был включен, когда я запускаю эту команду albums= doc.search('release/album').map{ |t| t.text}
.
ваш код не понял. –
Хорошая стенография, понятия не имела о не. Очень полезно – mhenrixon
Большое спасибо, очень просто. Еще один быстрый вопрос, если у вас есть момент, если я хочу проверить наличие нескольких дочерних элементов, мне нужно будет делать отдельные строки кода или есть опция, например 'doc.xpath ('// release [not (альбомный исполнитель)] «) .remove'? – user1596069