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();

    }

}

你可能感兴趣的:(基本操作)