PHP DOM: заполнение значений в данных XML - PullRequest
1 голос
/ 06 июля 2011
$xml = new DOMDocument();
$xml_store_inventory = $xml->createElement('store-inventory');  // highest layer
$xml_item = $xml->createElement('item');
$xml_quantity = $xml->createElement('quantity');

$xml->appendChild($xml_store_inventory);
$xml_store_inventory->appendChild($xml_item);
$xml_location->appendChild($xml_quantity);

дает:

<?xml version="1.0"?>
<store-inventory>
  <item>
      <quantity></quantity>
  </item>
</store-inventory>

Итак, мне удалось создать вышеупомянутое в PHP с использованием DOM.Я искал в Интернете, как «заполнить», но я не нахожу никакой информации о том, как это сделать.

В частности, я бы хотел, чтобы это выглядело так

<?xml version="1.0" encoding="UTF-8"?>
<store-inventory
xmlns="http://..."
xmlns:xsi="http://..."
xsi:schemaLocation="http://...">

    <item item-id="abcd">
       <quantity>0</quantity>
    </item>
</store-inventory>

Итак, я хотел бы добавить / изменить следующее:

  1. изменитьстрока версии XML для включения кодировки (очистите это, я понял -> $ xml = new DOMDocument ('1.0', 'UTF-8');)
  2. Добавить дополнительную информацию к элементу.например, [item] to [item item-id = "abcd"]
  3. Также [количество] до [количество] 0 [/ количество]

Может кто-нибудь помочь мне с этим?ТИА!

1 Ответ

1 голос
/ 06 июля 2011

Вы уже довольно близки.

2: установите атрибут:

// set/add an attribute:
$xml_item->setAttribute('item-id', "abcd");

3: добавьте данные при добавлении тега / элемента:

// add an element with data:
$xml_quantity = $xml->createElement('quantity', '0');

2 +: используйте HTMLSpecialchars, чтобы запретить браузеру скрывать теги:

echo nl2br(html_specialchars($xml->saveXML(), ENT_QUOTES));
...