php编写的xml文件的基本操作类

php编写的xml文件的基本操作类

class xmlMessage{

protected $doc;

protected $rootKey;

public function __construct() {

$this->doc = new DOMDocument('1.0', 'utf-8');

$this->doc -> formatOutput = true;

$status = $this->doc -> createElement('status');//create new key

$this->rootKey = $status;

$this->doc->appendChild($status);

}

public function createSon($sonName, $value){

$this->deleteChild($sonName);

$sonKey = $this->doc -> createElement($sonName);//新建节点

$content = $this->doc -> createTextNode($value);//节点值

$sonKey -> appendChild($content);

$this->rootKey->appendChild($sonKey);

}

public function appendNodeValue($tagName, $appendValue){

if(!$this->hasNodeName($tagName)){

$this->createSon($tagName, '');

}

$this->rootKey->getElementsByTagName($tagName)->item(0)->nodeValue .= "\n".$appendValue;

}

public function editNodevalue($tagName, $value){

if(!$this->hasNodeName($tagName)){

$this->createSon($tagName, '');

}

$this->rootKey->getElementsByTagName($tagName)->item(0)->nodeValue = $value;

}

public function deleteChild($tagName){

if($this->hasNodeName($tagName))

$this->rootKey -> removeChild($this->rootKey->getElementsByTagName($tagName)->item(0));

}

private function hasNodeName($tagName){

$hasNode = false;

$tempList = $this->doc->getElementsByTagName($tagName);

foreach($tempList as $temp){

if($temp->nodeName == $tagName)

$hasNode = true;

}

return $hasNode;

}

public function setNodesByArray($xmlArray){

$now = getdate(time());

$dataCreated = $now['year'].'/'.$now['mon'].'/'.$now['mday'].' '.$now['hours'].':'.$now['minutes'].':'.$now['seconds'];

$this->createSon('language', strtolower($xmlArray['basicInfo']['language']));

$this->createSon('source', $xmlArray['basicInfo']['source']);

$this->createSon('resumeUrl', $xmlArray['basicInfo']['resumeUrl']);

$this->createSon('email', $xmlArray['basicInfo']['email']);

$this->createSon('resumeGuid', $xmlArray['basicInfo']['resumeGuid']);

$this->createSon('dateCreated', $dataCreated);

$this->createSon('success','TRUE');

}

public function getXML(){

return $this->doc->saveXML();

}

}