Re: XML_Transformer question
| From: | Bertrand Mansion | Date: | Mon, 07 Apr 2003 11:04:09 +0000 |
| Subject: | Re: XML_Transformer question | ||
| References: | 1 | Groups: | php.pear.general |
| Request: | Send a blank email to pear-general+get-4677@lists.php.net to get a copy of this message | ||
<bmansion@mamasam.com> wrote :
> Hi,
>
> I have a question about XML_transformer. Would it be possible to specify
> which namespace is to be parsed when the transform() method is called and
> have only items from this namespace returned ?
>
> I have an xml document that looks like this:
>
> <contents>
> <side:promo>
> Here goes the promo.
> </side:promo>
> <content:content>
> Here goes the contents.
> </content:content>
> </contents>
>
> I have two XML_Transformer_Namespace extensions with corresponding start_
> and end_ methods:
>
> Class XML_Transformer_Side extends XML_Transformer_Namespace
> start_promo
> end_promo
>
> Class XML_Transformer_Content extends XML_Transformer_Namespace
> start_content
> end_content
>
> Now create a new XML_Transformer object with these parameters:
>
> $parameters['overloadedNamespaces'] =
> array('content' => new Mamasam_Transformer_Content,
> 'side' => new Mamasam_Transformer_Side);
I meant ^^^ :
array('content' => new XML_Transformer_Content,
'side' => new XML_Transformer_Side);
Sorry !
> $parameters['recursiveOperation'] = false;
> $t = new XML_Transformer($parameters);
> $content = $t->transform($xml);
>
> This code only returns the side part transformed, the content is left as is.
> I would like to know if there is a way to achieve something like this
> instead:
>
> $content = $t->transform($xml, 'content');
> $side = $t->transform($xml, 'side');
>
> And have only the side or the content namespaces parsed. Or maybe there is a
> better way ?
TIA
Bertrand Mansion
Mamasam