2011-01-10 4 views
1

私はxmlファイルに書き込もうとしています。 私のサーバーにはDOMが無効になっています。 私はDOM機能を使用できません。DOMなしでxmlファイルに書き込み/削除する方法はありますか?

DOM以外のXMLに書き込む方法はありますか?

ファイル:

の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']}");  

私は何ができるのでしょうか?

+1

DOM5はデフォルトで有効になっています。あなたのホストがそれを無効にした場合は、なぜそうする必要がないのか理由を尋ねます。さらに良い方法は、プロバイダを切り替えることです。 – Gordon

答えて

1

PHP5を使用している場合はSimpleXML

+0

面白いことに、libxmlは無効になっています... – ajreal

0

ファイルをプレーンテキストファイルとして編集できます。ただし、すべての要素が閉じられ、すべてのデータが正しくエスケープされていることを確認する必要があります。 XMLだけを出力する必要がある場合、これは実行可能ですが、既存のXMLデータを追加および変更できるパーサを作成するのは難しい作業です。 DOMを有効にしたり、すぐに使用できるライブラリを見つけようとするとよいでしょう。

関連する問題