@DanteIF

XML как удалить элементы в которых одинокавые дочерние элементы?

У меня есть большой XML файл, в котором содержаться элементы с одинаковыми дочерними элементами. В примере, у элемента item одинаковые значения элемента position, как мне найти и удалить все лишние элементы на языке php и оставить только один item с элементом position, значение у которого 355 ?
<?xml version="1.0" encoding="UTF-8"?>
<shop>
    <item>
            <name>Apple</name>
            <position>355</position>
             <desc>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam</desc>
    </item>
    <item>
            <name>Lemon</name>
            <position>251</position>
             <desc>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam</desc>
    </item>
     <item>
            <name>Big Apple</name>
            <position>355</position>
             <desc>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam</desc>
    </item>
     <item>
            <name>Small Apple</name>
            <position>355</position>
             <desc>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam</desc>
    </item>
</shop>
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Farwisdomer
1. Спарсить xpath'ом все \\shop\item\position
2. Пройтись по NodeSet'u циклом и удалить все родительские ноды одинаковых элементов, кроме первого, вместе с внутренностями.
3. Сохранить xml.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы