Нашел этот скрипт, который почти делает то, что я хочу; Но не все так.
$dom = new DOMDocument;
$dom->preserveWhiteSpace = FALSE;
$table = $dom->appendChild($dom->createElement('incidents'));
foreach($result as $row) {
$data = $dom->createElement('incident');
$table->appendChild($data);
foreach($row as $name => $value) {
$col = $dom->createElement('column', $value);
$data->appendChild($col);
$colattribute = $dom->createAttribute('name');
$colattribute->value = $name;
$col->appendChild($colattribute);
Теперь он дает результат XML с:
<column name="id"> and </column>
Я хотел бы, чтобы это было
<id> and </id>
Что я должен изменить? Я перепробовал все возможные варианты.
Это только средняя часть. В остальном вроде нормально работает.
Заранее спасибо!
функция createElement
делает именно это — создает новый элемент.
Первым параметром будет имя вашего элемента (в вашем случае — колонка):
$col = $dom->createElement('column', $value);
Если вы хотите иметь элемент с именем id
Вы должны использовать id
как имя элемента:
$col = $dom->createElement('id', $value);
Функция createElement
получает 2 параметра. Первый параметр — это имя тега, второй параметр — это содержимое тега.
Это означает, что если вы делаете:
$col = $dom->createElement('ThisIsMySpecialTagName', 'ValueValueValue');
Ты получишь
<ThisIsMySpecialTagName>ValueValueValue</ThisIsMySpecialTagName>
Вы можете положить в первый параметр независимо от того, что вы хотите имя тега (вещь, которая находится между <
а также >
) и второй Параметр — это содержимое тега (что находится между открывающим и закрывающим тегом).
Других решений пока нет …