Как в xml сделать replace <image> to <image id="1">

Статус
В этой теме нельзя размещать новые ответы.

djodofin

Постоялец
Регистрация
6 Июл 2017
Сообщения
328
Реакции
137
У меня экспортируются изображения в xml в формате

<images>
<image>URL</image>
<image>URL</image>
<image>URL</image>
<image>URL</image>
</images>

какая изенить изображения чтобы были с маркером id="1",id="2",id="3" и так дальше.

<images>
<image id="1">URL</image>
<image id="2">URL</image>
<image id="3">URL</image>
<image id="4">URL</image>
</images>
 
Я бы распарсил xml на в массив и циклом добавил эти id, и обратно записал в новый файл
 
Можете помочь с таким вариантом (не разбираюсь как это сделать). Cпасибо.

Вот структура xml файла test.xml:

XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
        <thinkspain>
        <import_version>1.16</import_version>
    </thinkspain>
    <agent>
        <name>guru</name>
    </agent>
  <property>
    <unique_id>14980</unique_id>
    <property_type>Apartment</property_type>
    <new_build>1</new_build>
    <province/>
    <location>
      <latitude>38.3192073</latitude>
      <longitude>-0.5805685,12</longitude>
    </location>
    <description>
      <en> residential developed by AREA</en>
    </description>
    <images>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/87999.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/88012.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/88013.jpg</photo>
    </images>
    <bedrooms>2</bedrooms>
    <bathrooms>2</bathrooms>
    <features>
      <feature>Air Conditioning</feature>
      <feature>AirConditioning</feature>
      <feature>Balconys</feature>
    </features>
  </property>
  <property>
    <unique_id>15912</unique_id>
    <property_type>Apartment</property_type>
    <description>
      <en>first residential developed by AREA, located</en>
    </description>
    <images>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/4a6d1a50c493f8c6c7572f9125bda8b7.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/eaa68ee19bbeffea53a1492286cf802f.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/c67b3682ddc727a17549e26aae8534be.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/3066e189ffc09767c81d09d2f4974014.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/8e6970b50c26cb80c4ed48e7f1a44579.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/896c9a47565f4035eab16407a62d252a.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/f74dd8d4366633cd133f97ad3873cd25.jpg</photo>
    </images>
    <features>
      <feature>Aircondition</feature>
      <feature>Balcony</feature>
    </features>
  </property>
    <property>
    <unique_id>14980</unique_id>
    <property_type>Apartment</property_type>
    <new_build>1</new_build>
    <province/>
    <location>
      <latitude>38.3192073</latitude>
      <longitude>-0.5805685,12</longitude>
    </location>
    <description>
      <en> residential developed by AREA</en>
    </description>
    <images>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/87999.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/88012.jpg</photo>
      <photo>https://mi-site.com/wp-content/uploads/2022/09/88013.jpg</photo>
    </images>
    <bedrooms>2</bedrooms>
    <bathrooms>2</bathrooms>
    <features>
      <feature>Air Conditioning</feature>
      <feature>AirConditioning</feature>
      <feature>Balconys</feature>
    </features>
  </property>

 </root>

Вот РНР файл:
PHP:
<?
$xml = simplexml_load_file('https://mi-site.com/test.xml');
// Создаем объект SimpleXMLElement из XML-кода
$imagesXml = new SimpleXMLElement($xml);

// Получаем все элементы <photo>
$images = $imagesXml->photo;

// Идентификатор для атрибута "id"
$id = 1;

// Перебираем каждый элемент и добавляем атрибут "id"
foreach ($images as $photo) {
    $photo->addAttribute('id', $id);
    $id++;
}

// Преобразуем объект SimpleXMLElement обратно в XML-код
$modifiedXml = $imagesXml->asXML();

// Выводим измененный XML-код
echo $modifiedXml;
?>

При запуске РНР файла в test.xml ничего не происходит.

Поправьте пожалуйста, в чем моя ошибка.
Спасибо.
 
Последнее редактирование модератором:
PHP:
<?php

// Загрузка XML-файла
$xml = simplexml_load_file('имя_файла.xml');

// Получение списка элементов <image>
$imageElements = $xml->xpath('/images/image');

// Проход по каждому элементу и добавление атрибута id
foreach ($imageElements as $index => $imageElement) {
    $imageElement->addAttribute('id', $index + 1);
}

// Сохранение изменений обратно в файл
$xml->asXML('имя_файла.xml');

python вариант
Python:
import xml.etree.ElementTree as ET

# Загрузка XML-файла
tree = ET.parse('имя_файла.xml')
root = tree.getroot()

# Получение списка элементов <image>
image_elements = root.findall('image')

# Проход по каждому элементу и добавление атрибута id
for i, image_element in enumerate(image_elements):
    image_element.set('id', str(i+1))

# Сохранение изменений обратно в файл
tree.write('имя_файла.xml')

В этом примере вы должны заменить 'имя_файла.xml' на путь к вашему XML-файлу. После выполнения этого кода, ваши изображения должны быть обновлены с маркерами id="1", id="2", id="3" и т.д.
 
Спасибо за ваши труды, но так тоже Не работает.
Загружает заданный XML-файл-1, выводит в новый XML-файл-2 но атрибуты не добавляет (данные остаются теже что и в XML-файл-1).

В чем может быть ошибка?

Еще раз, спасибо.
 
Прописал путь от корня файла ('/root/property/images/image'), атрибуты добавляются. Но не так как надо!

Вот код php:
PHP:
<?php
// Загрузка XML-файла
$xml = simplexml_load_file('kyero-mivo.xml');

// Получение списка элементов <image>
$imageElements = $xml->xpath('/root/property/images/image');

// Проход по каждому элементу и добавление атрибута id
foreach ($imageElements as $index => $imageElement) {
    $imageElement->addAttribute('id', $index + 1);
}

// Сохранение изменений обратно в файл
$xml->asXML('kyero.xml');
?>

Вот результат выполнения выходного XML-файла:

XML:
<root>
  <property>
    <images>
      <image id="1"><url>https://mi-site.com/wp-content/uploads/2023/06/6-1.jpg</url></image>
      <image id="2"><url>https://mi-site.com/wp-content/uploads/2023/06/6-2.jpg</url></image>
      <image id="3"><url>https://mi-site.com/wp-content/uploads/2023/06/6-3.jpg</url></image>
      <image id="4"><url>https://mi-site.com/wp-content/uploads/2023/06/6-4.jpg</url></image>
      <image id="5"><url>https://mi-site.com/wp-content/uploads/2023/06/6-5.jpg</url></image>
      <image id="6"><url>https://mi-site.com/wp-content/uploads/2023/06/6-6.jpg</url></image>
      <image id="7"><url>https://mi-site.com/wp-content/uploads/2023/06/6-7.jpg</url></image>
      <image id="8"><url>https://mi-site.com/wp-content/uploads/2023/06/6-8.jpg</url></image>
      <image id="9"><url>https://mi-site.com/wp-content/uploads/2023/06/6-9.jpg</url></image>
      <image id="10"><url>https://mi-site.com/wp-content/uploads/2023/06/6-10.jpg</url></image>
      <image id="11"><url>https://mi-site.com/wp-content/uploads/2023/06/6-11.jpg</url></image>
      <image id="12"><url>https://mi-site.com/wp-content/uploads/2023/06/6-12.jpg</url></image>
      <image id="13"><url>https://mi-site.com/wp-content/uploads/2023/06/6-13.jpg</url></image>
    </images>
  </property>
  <property>
    <images>
      <image id="14"><url>https://mi-site.com/wp-content/uploads/2023/06/3-1.jpg</url></image>
      <image id="15"><url>https://mi-site.com/wp-content/uploads/2023/06/3-2.jpg</url></image>
      <image id="16"><url>https://mi-site.com/wp-content/uploads/2023/06/3-3.jpg</url></image>
      <image id="17"><url>https://mi-site.com/wp-content/uploads/2023/06/3-4.jpg</url></image>
      <image id="18"><url>https://mi-site.com/wp-content/uploads/2023/06/3-5.jpg</url></image>
      <image id="19"><url>https://mi-site.com/wp-content/uploads/2023/06/3-6.jpg</url></image>
      <image id="20"><url>https://mi-site.com/wp-content/uploads/2023/06/3-7.jpg</url></image>
      <image id="21"><url>https://mi-site.com/wp-content/uploads/2023/06/3-8.jpg</url></image>
      <image id="22"><url>https://mi-site.com/wp-content/uploads/2023/06/3-9.jpg</url></image>
      <image id="23"><url>https://mi-site.com/wp-content/uploads/2023/06/3-10.jpg</url></image>
      <image id="24"><url>https://mi-site.com/wp-content/uploads/2023/06/3-11.jpg</url></image>
      <image id="25"><url>https://mi-site.com/wp-content/uploads/2023/06/3-12.jpg</url></image>
      <image id="26"><url>https://mi-site.com/wp-content/uploads/2023/06/3-13.jpg</url></image>
      <image id="27"><url>https://mi-site.com/wp-content/uploads/2023/06/3-14.jpg</url></image>
    </images>
  </property>
  <property>
    <images>
      <image id="28"><url>https://mi-site.com/wp-content/uploads/2023/06/1-1.jpg</url></image>
      <image id="29"><url>https://mi-site.com/wp-content/uploads/2023/06/1-2.jpg</url></image>
      <image id="30"><url>https://mi-site.com/wp-content/uploads/2023/06/1-3.jpg</url></image>
      <image id="31"><url>https://mi-site.com/wp-content/uploads/2023/06/1-4.jpg</url></image>
      <image id="32"><url>https://mi-site.com/wp-content/uploads/2023/06/1-5.jpg</url></image>
      <image id="33"><url>https://mi-site.com/wp-content/uploads/2023/06/1-6.jpg</url></image>
      <image id="34"><url>https://mi-site.com/wp-content/uploads/2023/06/1-7.jpg</url></image>
      <image id="35"><url>https://mi-site.com/wp-content/uploads/2023/06/1-8.jpg</url></image>
      <image id="36"><url>https://mi-site.com/wp-content/uploads/2023/06/1-9.jpg</url></image>
      <image id="37"><url>https://mi-site.com/wp-content/uploads/2023/06/1-10.jpg</url></image>
      <image id="38"><url>https://mi-site.com/wp-content/uploads/2023/06/1-11.jpg</url></image>
      <image id="39"><url>https://mi-site.com/wp-content/uploads/2023/06/1-12.jpg</url></image>
    </images>
  </property>
</root>

Требуемый результат выходного XML-файла. Как добиться требуемого результата?

XML:
<root>
  <property>
    <images>
      <image id="1"><url>https://mi-site.com/wp-content/uploads/2023/06/6-1.jpg</url></image>
      <image id="2"><url>https://mi-site.com/wp-content/uploads/2023/06/6-2.jpg</url></image>
      <image id="3"><url>https://mi-site.com/wp-content/uploads/2023/06/6-3.jpg</url></image>
      <image id="4"><url>https://mi-site.com/wp-content/uploads/2023/06/6-4.jpg</url></image>
      <image id="5"><url>https://mi-site.com/wp-content/uploads/2023/06/6-5.jpg</url></image>
      <image id="6"><url>https://mi-site.com/wp-content/uploads/2023/06/6-6.jpg</url></image>
      <image id="7"><url>https://mi-site.com/wp-content/uploads/2023/06/6-7.jpg</url></image>
      <image id="8"><url>https://mi-site.com/wp-content/uploads/2023/06/6-8.jpg</url></image>
      <image id="9"><url>https://mi-site.com/wp-content/uploads/2023/06/6-9.jpg</url></image>
      <image id="10"><url>https://mi-site.com/wp-content/uploads/2023/06/6-10.jpg</url></image>
      <image id="11"><url>https://mi-site.com/wp-content/uploads/2023/06/6-11.jpg</url></image>
      <image id="12"><url>https://mi-site.com/wp-content/uploads/2023/06/6-12.jpg</url></image>
      <image id="13"><url>https://mi-site.com/wp-content/uploads/2023/06/6-13.jpg</url></image>
    </images>
  </property>
  <property>
    <images>
      <image id="1"><url>https://mi-site.com/wp-content/uploads/2023/06/6-1.jpg</url></image>
      <image id="2"><url>https://mi-site.com/wp-content/uploads/2023/06/6-2.jpg</url></image>
      <image id="3"><url>https://mi-site.com/wp-content/uploads/2023/06/6-3.jpg</url></image>
      <image id="4"><url>https://mi-site.com/wp-content/uploads/2023/06/6-4.jpg</url></image>
      <image id="5"><url>https://mi-site.com/wp-content/uploads/2023/06/6-5.jpg</url></image>
      <image id="6"><url>https://mi-site.com/wp-content/uploads/2023/06/6-6.jpg</url></image>
      <image id="7"><url>https://mi-site.com/wp-content/uploads/2023/06/6-7.jpg</url></image>
    </images>
  </property>
  <property>
    <images>
      <image id="1"><url>https://mi-site.com/wp-content/uploads/2023/06/6-1.jpg</url></image>
      <image id="2"><url>https://mi-site.com/wp-content/uploads/2023/06/6-2.jpg</url></image>
      <image id="3"><url>https://mi-site.com/wp-content/uploads/2023/06/6-3.jpg</url></image>
      <image id="4"><url>https://mi-site.com/wp-content/uploads/2023/06/6-4.jpg</url></image>
      <image id="5"><url>https://mi-site.com/wp-content/uploads/2023/06/6-5.jpg</url></image>
      <image id="6"><url>https://mi-site.com/wp-content/uploads/2023/06/6-6.jpg</url></image>
    </images>
  </property>
</root>
 
Прописал путь от корня файла ('/root/property/images/image'), атрибуты добавляются. Но не так как надо!

Вот код php:
PHP:
<?php
// Загрузка XML-файла
$xml = simplexml_load_file('kyero-mivo.xml');

// Получение списка элементов <image>
$imageElements = $xml->xpath('/root/property/images/image');

// Проход по каждому элементу и добавление атрибута id
foreach ($imageElements as $index => $imageElement) {
    $imageElement->addAttribute('id', $index + 1);
}

// Сохранение изменений обратно в файл
$xml->asXML('kyero.xml');
?>

Вот результат выполнения выходного XML-файла:

XML:
<root>
  <property>
    <images>
      <image id="1"><url>https://mi-site.com/wp-content/uploads/2023/06/6-1.jpg</url></image>
      <image id="2"><url>https://mi-site.com/wp-content/uploads/2023/06/6-2.jpg</url></image>
      <image id="3"><url>https://mi-site.com/wp-content/uploads/2023/06/6-3.jpg</url></image>
      <image id="4"><url>https://mi-site.com/wp-content/uploads/2023/06/6-4.jpg</url></image>
      <image id="5"><url>https://mi-site.com/wp-content/uploads/2023/06/6-5.jpg</url></image>
      <image id="6"><url>https://mi-site.com/wp-content/uploads/2023/06/6-6.jpg</url></image>
      <image id="7"><url>https://mi-site.com/wp-content/uploads/2023/06/6-7.jpg</url></image>
      <image id="8"><url>https://mi-site.com/wp-content/uploads/2023/06/6-8.jpg</url></image>
      <image id="9"><url>https://mi-site.com/wp-content/uploads/2023/06/6-9.jpg</url></image>
      <image id="10"><url>https://mi-site.com/wp-content/uploads/2023/06/6-10.jpg</url></image>
      <image id="11"><url>https://mi-site.com/wp-content/uploads/2023/06/6-11.jpg</url></image>
      <image id="12"><url>https://mi-site.com/wp-content/uploads/2023/06/6-12.jpg</url></image>
      <image id="13"><url>https://mi-site.com/wp-content/uploads/2023/06/6-13.jpg</url></image>
    </images>
  </property>
  <property>
    <images>
      <image id="14"><url>https://mi-site.com/wp-content/uploads/2023/06/3-1.jpg</url></image>
      <image id="15"><url>https://mi-site.com/wp-content/uploads/2023/06/3-2.jpg</url></image>
      <image id="16"><url>https://mi-site.com/wp-content/uploads/2023/06/3-3.jpg</url></image>
      <image id="17"><url>https://mi-site.com/wp-content/uploads/2023/06/3-4.jpg</url></image>
      <image id="18"><url>https://mi-site.com/wp-content/uploads/2023/06/3-5.jpg</url></image>
      <image id="19"><url>https://mi-site.com/wp-content/uploads/2023/06/3-6.jpg</url></image>
      <image id="20"><url>https://mi-site.com/wp-content/uploads/2023/06/3-7.jpg</url></image>
      <image id="21"><url>https://mi-site.com/wp-content/uploads/2023/06/3-8.jpg</url></image>
      <image id="22"><url>https://mi-site.com/wp-content/uploads/2023/06/3-9.jpg</url></image>
      <image id="23"><url>https://mi-site.com/wp-content/uploads/2023/06/3-10.jpg</url></image>
      <image id="24"><url>https://mi-site.com/wp-content/uploads/2023/06/3-11.jpg</url></image>
      <image id="25"><url>https://mi-site.com/wp-content/uploads/2023/06/3-12.jpg</url></image>
      <image id="26"><url>https://mi-site.com/wp-content/uploads/2023/06/3-13.jpg</url></image>
      <image id="27"><url>https://mi-site.com/wp-content/uploads/2023/06/3-14.jpg</url></image>
    </images>
  </property>
  <property>
    <images>
      <image id="28"><url>https://mi-site.com/wp-content/uploads/2023/06/1-1.jpg</url></image>
      <image id="29"><url>https://mi-site.com/wp-content/uploads/2023/06/1-2.jpg</url></image>
      <image id="30"><url>https://mi-site.com/wp-content/uploads/2023/06/1-3.jpg</url></image>
      <image id="31"><url>https://mi-site.com/wp-content/uploads/2023/06/1-4.jpg</url></image>
      <image id="32"><url>https://mi-site.com/wp-content/uploads/2023/06/1-5.jpg</url></image>
      <image id="33"><url>https://mi-site.com/wp-content/uploads/2023/06/1-6.jpg</url></image>
      <image id="34"><url>https://mi-site.com/wp-content/uploads/2023/06/1-7.jpg</url></image>
      <image id="35"><url>https://mi-site.com/wp-content/uploads/2023/06/1-8.jpg</url></image>
      <image id="36"><url>https://mi-site.com/wp-content/uploads/2023/06/1-9.jpg</url></image>
      <image id="37"><url>https://mi-site.com/wp-content/uploads/2023/06/1-10.jpg</url></image>
      <image id="38"><url>https://mi-site.com/wp-content/uploads/2023/06/1-11.jpg</url></image>
      <image id="39"><url>https://mi-site.com/wp-content/uploads/2023/06/1-12.jpg</url></image>
    </images>
  </property>
</root>

Требуемый результат выходного XML-файла. Как добиться требуемого результата?

XML:
<root>
  <property>
    <images>
      <image id="1"><url>https://mi-site.com/wp-content/uploads/2023/06/6-1.jpg</url></image>
      <image id="2"><url>https://mi-site.com/wp-content/uploads/2023/06/6-2.jpg</url></image>
      <image id="3"><url>https://mi-site.com/wp-content/uploads/2023/06/6-3.jpg</url></image>
      <image id="4"><url>https://mi-site.com/wp-content/uploads/2023/06/6-4.jpg</url></image>
      <image id="5"><url>https://mi-site.com/wp-content/uploads/2023/06/6-5.jpg</url></image>
      <image id="6"><url>https://mi-site.com/wp-content/uploads/2023/06/6-6.jpg</url></image>
      <image id="7"><url>https://mi-site.com/wp-content/uploads/2023/06/6-7.jpg</url></image>
      <image id="8"><url>https://mi-site.com/wp-content/uploads/2023/06/6-8.jpg</url></image>
      <image id="9"><url>https://mi-site.com/wp-content/uploads/2023/06/6-9.jpg</url></image>
      <image id="10"><url>https://mi-site.com/wp-content/uploads/2023/06/6-10.jpg</url></image>
      <image id="11"><url>https://mi-site.com/wp-content/uploads/2023/06/6-11.jpg</url></image>
      <image id="12"><url>https://mi-site.com/wp-content/uploads/2023/06/6-12.jpg</url></image>
      <image id="13"><url>https://mi-site.com/wp-content/uploads/2023/06/6-13.jpg</url></image>
    </images>
  </property>
  <property>
    <images>
      <image id="1"><url>https://mi-site.com/wp-content/uploads/2023/06/6-1.jpg</url></image>
      <image id="2"><url>https://mi-site.com/wp-content/uploads/2023/06/6-2.jpg</url></image>
      <image id="3"><url>https://mi-site.com/wp-content/uploads/2023/06/6-3.jpg</url></image>
      <image id="4"><url>https://mi-site.com/wp-content/uploads/2023/06/6-4.jpg</url></image>
      <image id="5"><url>https://mi-site.com/wp-content/uploads/2023/06/6-5.jpg</url></image>
      <image id="6"><url>https://mi-site.com/wp-content/uploads/2023/06/6-6.jpg</url></image>
      <image id="7"><url>https://mi-site.com/wp-content/uploads/2023/06/6-7.jpg</url></image>
    </images>
  </property>
  <property>
    <images>
      <image id="1"><url>https://mi-site.com/wp-content/uploads/2023/06/6-1.jpg</url></image>
      <image id="2"><url>https://mi-site.com/wp-content/uploads/2023/06/6-2.jpg</url></image>
      <image id="3"><url>https://mi-site.com/wp-content/uploads/2023/06/6-3.jpg</url></image>
      <image id="4"><url>https://mi-site.com/wp-content/uploads/2023/06/6-4.jpg</url></image>
      <image id="5"><url>https://mi-site.com/wp-content/uploads/2023/06/6-5.jpg</url></image>
      <image id="6"><url>https://mi-site.com/wp-content/uploads/2023/06/6-6.jpg</url></image>
    </images>
  </property>
</root>
https://nulled.cc/threads/neobhodimo-dobavit-atibuty-v-xml-fajl.313031/ написал тут ответ
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху