Есть ли способ записи / удаления в XML-файл без DOM? - PullRequest
1 голос
/ 10 января 2011

Я пытаюсь написать в XML-файл. но мой сервер DOM отключен. поэтому я не могу использовать функцию DOM.

есть ли способ написать на xml, кроме DOM?

Файлы:

XML:

<?xml version="1.0" encoding="UTF-8"?>
<events>
<record>
<event>aaa</event>
<eventDate>bbb</eventDate>
<desc>ccc</desc>
</record>

parser.php:

header("Content-type: text/html; charset=utf-8");

$record = array(
    'event' => $_POST['event'],
    'eventDate' => $_POST['eventDate'],
    'desc' => $_POST['desc'],
);

$doc = new DOMDocument();
$doc->load( 'calendar.xml' );

$doc->formatOutput = true;
$r = $doc->getElementsByTagName("events")->item(0);

$b = $doc->createElement("record");

$event = $doc->createElement("event");
$event->appendChild(
    $doc->createTextNode( $record["event"] )
);
$b->appendChild( $event );

$eventDate = $doc->createElement("eventDate");
$eventDate->appendChild(
    $doc->createTextNode( $record["eventDate"] )
);
$b->appendChild( $eventDate );

$desc = $doc->createElement("desc");
$desc->appendChild(
    $doc->createTextNode( $record["desc"] )
);

$b->appendChild( $desc );
$r->insertBefore( $b,$r->firstChild );

$doc->save("calendar.xml");

header("Location: {$_SERVER['HTTP_REFERER']}");    

что я могу сделать?

Ответы [ 2 ]

1 голос
/ 10 января 2011

если вы используете PHP5, вы можете использовать SimpleXML

0 голосов
/ 10 января 2011

Вы можете редактировать файл, как если бы он был простым текстовым файлом.Однако вам необходимо убедиться, что все элементы закрыты и все данные экранированы правильно.Если вам нужно только вывести XML, это выполнимо, но написать синтаксический анализатор, который может добавлять и изменять существующие данные XML, - непростая задача.Лучше попробуйте включить DOM или найти готовую библиотеку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...