Ben, PHP'nin okuma yazma biliyor, ve ekleme ...

2 Cevap php

Ben bir XML dosyası oluşturmak çalışıyorum, ancak XML dosya append kullanmak kolay değil, dolayısıyla ... düğümler sarılmış gerekmektedir.

Bu herhangi bir yardım büyük olurdu!

Benim XML 2 farklı düğüm türlerinden oluşmaktadır:

<entry id="1_0">
    <title>This is the title</title>
    <description>This is the description...</description>
    <subName>Publishers Name</subName>
    <date>Saturday, June 11th, 2007, 5:46:21 PM</date>
    <BorF>bug</BorF>
</entry>

<vote id="1_0">5</vote>

Ve ben bir PHP dosyası ile (şu anda statik) veri göndermek için jQuery kullanarak basit bir test sayfası var

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>


<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

<script>

$(function(){


    $("#addVote").click(function() {
    	$.ajax({
    		type: "POST",
    		url: "saveListData.php",
    		data: 'url=bugs_features_listdata.xml&listData=\n<vote id="1_2">3</vote>',
    		async: false,
    		cache: false,
    		success: function(data, textStatus) {
    			if (window.console) console.log(textStatus);
    		},
    		complete: function(XMLHttpRequest, textStatus){
    			if (window.console) console.log(textStatus);
    		}
    	});
    });

    $("#addEntry").click(function() {
    	$.ajax({
    		type: "POST",
    		url: "saveListData.php",
    		data: 'url=bugs_features_listdata.xml&listData=\n<entry id="1_1">\n\
\t<title>This is the title 1</title>\n\
\t<description>This is the description...</description>\n\
\t<subName>Publishers Name</subName>\n\
\t<date>Saturday, June 11th, 2007, 5:46:21 PM</date>\n\
\t<BorF>bug</BorF>\n\
</entry>',
    		async: false,
    		cache: false,
    		success: function(data, textStatus) {
    			if (window.console) console.log(textStatus);
    		},
    		complete: function(XMLHttpRequest, textStatus){
    			if (window.console) console.log(textStatus);
    		}
    	});
    });


}); 

</script>

</head>

<body>


<a id="addVote" href="#">ADD VOTE</a><br /><br /><a id="addEntry" href="#">ADD ENTRY</a>


</body>
</html>

Ki ... Şu anda benim XML dosyasına ekler, ama başlangıç ​​/ bitiş düğümleri gerekir.

2 Cevap

txwinger Sorunuzun onun yorumunda bir fikri vardı. Eğer bunu seri hale getirmek ve bir metin dosyası olarak kaydetmek, düğüm eklemek için PHPs bir çok yerleşik XML manipülasyon kütüphaneleri kullanmalısınız. In SimpleXML, örneğin:

$xml = simplexml_load_file('test.xml');
$vote = $xml->addChild('vote', '5');
$vote->addAttribute('id','1_0');
$fp = fopen('test.xml', 'w');
fwrite($fp, $xml->asXML());
fclose($fp);

Vardır other XML manipulation libraries daha iyi senin görevin uygun olabilir

Ben size XML belgesinin yapısına bağlıdır söyleyebilirim. "Dinlenmek" öngörülebilir ise, size dosyadan o bölümü kesip yeni veri eklemek ve arka "dinlenme" yapıştırmak olabilir:

      ⋮
n-1:     <node>last node</node>
n  :  </root>


      ⋮
n-1:     <node>last node</node>
n  :     <node>new node</node>
n+1:  </root>