Я надеюсь, что кто-то из этого удивительного сообщества сможет мне помочь. Я не гениален, когда дело доходит до PHP, я нашел онлайн-скрипт для обновления XML-файла - и он работает, в том смысле, что он выполняет первый элемент в XML-файле, а затем портит остальную часть файла. .
Мой поставщик отправляет мне файл XML с обновленными уровнями запасов, но мне нужно изменить текст внутри файла.
stock.xml
<?xml version="1.0" encoding="UTF-8"?>
<STOREITEMS>
<PRODUCT ITEM="1234" NAME="Product Number One">
<STOCK>In Stock</STOCK>
</PRODUCT>
<PRODUCT ITEM="2345" NAME="Product Number Two">
<STOCK>In Stock</STOCK>
</PRODUCT>
<PRODUCT ITEM="3456" NAME="Product Number Three">
<STOCK>In Stock</STOCK>
</PRODUCT>
</STOREITEMS>
Мне нужно изменить In Stock на instock Вот PHP-код, который я нашел, чтобы сделать это:
updatestock.php
<?php
$xml1=simplexml_load_file('stock.xml');
$i=-1;
foreach($xml1->children() as $PRODUCT)
{
$i=$i+1;
$STOCK=$PRODUCT->STOCK;
if($STOCK=="In Stock")
{
$PRODUCT->STOCK[$i]="instock";
}
}
file_put_contents("stock.xml",$xml1->saveXML());
?>
Я заканчиваю сэтот результат:
stock.xml
<?xml version="1.0" encoding="UTF-8"?>
<STOREITEMS>
<PRODUCT ITEM="1234" NAME="Product Number One">
<STOCK>In Stock</STOCK>
</PRODUCT>
<PRODUCT ITEM="2345" NAME="Product Number Two">
<STOCK>In Stock</STOCK><STOCK>instock</STOCK>
</PRODUCT>
<PRODUCT ITEM="3456" NAME="Product Number Three">
<STOCK>In Stock</STOCK><STOCK>instock</STOCK>
</PRODUCT>
</STOREITEMS>
На 2-м и 3-м продуктах вместо обновления текста запаса он просто снова добавил новый атрибут с именем stock ивведите текст - и он делает это на протяжении всего файла.
Если кто-то может мне помочь, я был бы очень признателен. Спасибо всем! Jon