有没有办法在没有DOM的xml文件上编写/删除?

问题描述:

I'm trying to write on xml file. but my server have DOM as disabled. so i can't use the DOM function.

is there a way to write on xml other then DOM?

Files:

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

what can i do?

我正在尝试在xml文件上写。 但我的服务器已禁用DOM。 我可以' 使用DOM函数。 p>

有没有办法在xml上写入DOM? p>

文件: strong>

xml: p>

 &lt;?xml version =“1.0”encoding =“UTF-8”?&gt; 
&lt; events&gt;  
&LT;记录&GT; 
&LT;事件&GT; AAA&LT; /事件&GT; 
&LT; EVENTDATE&GT; BBB&LT; / EVENTDATE&GT; 
&LT;递减&GT; CCC&LT; /降序&GT; 
&LT; /记录&GT; 
 代码> 预 > 
 
 

parser.php: p>

  header(“Content-type:text / html; charset = utf-8”); 
 
 $  record = array(
'event'=&gt; $ _POST ['event'],
'eventDate'=&gt; $ _POST ['eventDate'],
'desc'=&gt; $ _POST ['desc'  ],
); 
 
 $ doc = new DOMDocument(); 
 $ doc-&gt; load('calendar.xml'); 
 
 $ doc-&gt; formatOutput = true; 
 $  r = $ doc-&gt; getElementsByTagName(“events”) - &gt; item(0); 
 
 $ b = $ doc-&gt; createElement(“record”); 
 
 $ event = $ doc-  &gt; createElement(“event”); 
 $ event-&gt; appendChild(
 $ doc-&gt; create  TextNode($ record [“event”])
); 
 $ b-&gt; appendChild($ event); 
 
 $ eventDate = $ doc-&gt; createElement(“eventDate”); 
 $ eventDate  - &gt; appendChild(
 $ doc-&gt; createTextNode($ record [“eventDate”])
); 
 $ b-&gt; appendChild($ eventDate); 
 
 $ desc = $ doc-&gt  ; createElement(“desc”); 
 $ desc-&gt; appendChild(
 $ doc-&gt; createTextNode($ record [“desc”])
); 
 
 $ b-&gt; appendChild($  desc); 
 $ r-&gt; insertBefore($ b,$ r-&gt; firstChild); 
 
 $ doc-&gt; save(“calendar.xml”); 
 
header(“Location:{  $ _SERVER [ 'HTTP_REFERER']}“);  
  code>  pre> 
 
 

我该怎么办? p> div>

if you're using PHP5 you can use SimpleXML

You could edit the file as if it were a plain text file. However, you will need to make sure all elements are closed and all data is escaped correctly. If you only need to output XML this is doable, but to write a parser that can add to and modify existing XML data is a tough job. Better try to enable DOM or find an out of the box library.