Re: manipulating XML via php DOM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I don't think it is valid to have an opening tag and a closing tag with
nothing in between. So an initial <or> and a final </or>, as you recall
it, should become <or/>.
Second, I'm not sure I understand what you want to accomplish. From the
example document you added is this the result you expect:

<And>

  <PropertyIsEqualTo>
    <PropertyName>genus</PropertyName>
    <Literal>ontophaugs332</Literal>
  </PropertyIsEqualTo>

<Or/>
<Or/>
</And>


Regards 

Jonas

On Tue, 2007-11-20 at 10:27 -0800, pere roca wrote:
> please, I need some help with php DOM, for me it's becoming a hell!
> 
> After trying other methods (check message from 19th november, called "php
> DOM question"), I'm getting a little more success to manipulate XML.
> 
> From the code you can see below you generate this xml. Now I just want to
> keep only the initial <Or> and the final </Or>. How can I access and delete
> the other (the "between" tags)? 
> I suppose there is no way to create an initial <Or> without the associated
> </Or>.
> Thanks a lot,
> 
> Pere
>  
> This is the WRONG XML generated from code. 
> ...
> <And>
> 
>   <PropertyIsEqualTo>
>     <PropertyName>genus</PropertyName>
>     <Literal>ontophaugs332</Literal>
>   </PropertyIsEqualTo>
> 
> <Or>
> 
>    <PropertyIsEqualTo>
>      <PropertyName>genus</PropertyName>
>         <Literal>copris</Literal>
>    </PropertyIsEqualTo>
> </Or>
> <Or>
> 
>    <PropertyIsEqualTo>
>      <PropertyName>genus</PropertyName>
>         <Literal>copris2</Literal>
>    </PropertyIsEqualTo>
> </Or>
> </And>
> 
> <?php
> $species=array('ontophaugs332','copris','copris2');
> $dom = new DOMDocument;
> //XML we will insert the data to
> $dom -> load('edit_iberia3.xml');
> 
> 
> $count=count($species);
> 
> foreach ($species as $sp=>$value) {
> //we pass parameters of the array
> 
>   	$where_to_insert= $dom->getElementsByTagName('And')->item(0);
>     
> 	$child = $dom->createElement('Or');	        
>         $or=$where_to_insert->appendChild($child);
> 	
> 	$child = $dom->createElement('PropertyIsEqualTo');	        
>         $first=$or->appendChild($child);
>   
> 	$child2 = $dom->createElement('PropertyName');
> 	$first->appendChild($child2);
> 	
> 	$child3 = $dom->createElement('Literal');
> 	$first->appendChild($child3);
> 
> 	//inserting the array data
> 	$values = $dom->createTextNode($value);
> 	$values = $child3->appendChild($values);
>      }
> 
> echo $dom->save(nou_iberia);
> ?> 
> -- 
> View this message in context: http://www.nabble.com/manipulating-XML-via-php-DOM-tf4845510.html#a13862945
> Sent from the PHP - General mailing list archive at Nabble.com.
> 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux