php ファイルと xml ファイルに問題があります。要素を xml ファイルに追加したいです。私はこのコードを書きましたが、動作します:
<?php
$file = 'clients.xml';
$doc = new DOMDocument();
$doc->load($file);
$get_elms = $doc->getElementsByTagName("Client");
$nr_elms = $get_elms->length;
$node = $get_elms->item($nr_elms-1);
$element = $node->nodeName;
if($element=='Client') {
$idfinal=intval($node->getAttribute('id'))+1;
$client = $doc->createElement('Client');
$node->parentNode->appendChild($client);
$client->setAttribute('id',$idfinal);
$client->setAttribute('name','Any name');
$client->setAttribute('cnp','12345');
$client->setAttribute('adress','adress');
$client->setAttribute('nb','123');
$client->setAttribute('amount','1000');
$client->setAttribute('type','Any type');
}
if($doc->save('clients.xml')) {
echo htmlentities($doc->saveXML());
}
?>
まったく同じコードをクラス、関数 addClient に入れても、xml ファイルが認識されないため機能しません。echo $get_elms->length; を試しました。そしてそれは私に0を返し、私の変数$ elementは空であるため、その「if」には入りません。このクラスを使用する必要があるのは、削除や更新などの操作をさらに行う必要があり、これらの関数にいくつかのパラメーターを送信する必要があるためです。誰かが私を助けて、私が間違っていることを教えてもらえますか?
私のクラスは次のようになります。
class xmlClientMappers {
public function adaugaClient(array $row)
{
$name = $row['name'];
$adress = $row['adress'];
$cnp = $row['cnp'];
$nb = $row['nb'];
$amount = $row['amount'];
$type = $row['type'];
$file = 'clients.xml';
$doc = new DOMDocument();
$doc->load($file);
$get_elms = $doc->getElementsByTagName("*");
$nr_elms = $get_elms->length;
echo "The nomber is ".$nr_elms;
$node = $get_elms->item($nr_elms-1);
$element = $node->nodeName;
echo "<br/>Here should be the name of the last element".$element;
if($element=='Client') {
$idfinal=intval($node->getAttribute('id'))+1;
echo " id-ul e ".$idfinal;
$client = $doc->createElement('Client');
$node->parentNode->appendChild($client);
$client->setAttribute('id',$idfinal);
$client->setAttribute('name',$name);
$client->setAttribute('cnp',$cnp);
$client->setAttribute('adress',$adress);
$client->setAttribute('nb',$nb);
$client->setAttribute('amount',$amount);
$client->setAttribute('type',$type);
}
if($doc->save('clienti.xml')) {
echo htmlentities($doc->saveXML());
else echo "It is wrong!";
}
}
}
?>
ありがとうございました!