| 
	
 | 
 Posted by Ken Tozier on 09/20/05 02:04 
Even better, you can just extend the DOMDocument class, which is   
perfect, since I'm basically just adding convenience methods. 
 
Thanks all for your help 
 
Ken 
 
 
<?php 
     $x = new MyDom(); 
 
     $x->createScriptElement('howdy.js'); 
     $x->createCSSLinkElement('howdy.css'); 
     $x->createStyledDivElement('bugColumnTitle', "I'm a styled piece   
of text!"); 
 
     print($x->saveXML()); 
 
     class MyDom extends DOMDocument 
     { 
         function createScriptElement($inPath) 
         { 
             $new_elem = $this->createElementAndAppend('script', null); 
             $new_elem->setAttribute('type', 'text/javascript'); 
             $new_elem->setAttribute('src', $inPath); 
         } 
 
         function createCSSLinkElement($inPath) 
         { 
             $new_elem = $this->createElementAndAppend('link', null); 
             $new_elem->setAttribute('href', $inPath); 
             $new_elem->setAttribute('rel', 'stylesheet'); 
             $new_elem->setAttribute('media', 'screen'); 
         } 
 
         function createStyledDivElement($inStyle, $inData) 
         { 
             $new_elem = $this->createElementAndAppend('div', $inData); 
             $new_elem->setAttribute('class', $inStyle); 
         } 
 
 
         function createElementAndAppend($inType, $inData) 
         { 
             // setting null inData to an empty string forces a close   
tag which is what we want 
             $elem_data    = ($inData == null) ? '' : $inData ; 
             $new_elem    = $this->createElement($inType, $elem_data); 
             $this->appendChild($new_elem); 
             return $new_elem; 
         } 
     } 
?> 
 
 
 
On Sep 19, 2005, at 6:13 PM, Ken Tozier wrote: 
 
> Thanks Jasper 
> 
> Works perfectly on my Mac now as well. 
> 
> Ken 
> 
> On Sep 19, 2005, at 4:58 PM, Jasper Bryant-Greene wrote: 
> 
> 
>> <?php 
>> $x = new MyDom(); 
>> $x->createScriptElement('howdy.js'); 
>> print($x->saveXML()); 
>> 
>> class MyDom { 
>>     private $dom; 
>> 
>>     /* __construct() = PHP5 constructor */ 
>>     function __construct() { 
>>         $this->dom = new DOMDocument('1.0', 'iso-8859-1'); 
>>         /* No need to return $this from a constructor */ 
>>     } 
>> 
>>     function createScriptElement($scriptPath) { 
>>         $script = $this->dom->createElement('script', ''); 
>>         $script->setAttribute('type', 'text/javascript'); 
>>         $script->setAttribute('src', $scriptPath); 
>>         $this->dom->appendChild($script); 
>>         /* 
>>             Doesn't make sense for a createScriptElement() 
>>             method to also print out the XML, so I made a 
>>             separate method and called that from the 
>>             mainline code. 
>>         */ 
>>     } 
>> 
>>     function saveXML() { 
>>         return $this->dom->saveXML(); 
>>     } 
>> } 
>> ?> 
>> 
> 
> --  
> PHP General Mailing List (http://www.php.net/) 
> To unsubscribe, visit: http://www.php.net/unsub.php 
> 
>
 
  
Navigation:
[Reply to this message] 
 |