[Php-it] XForms vs SimpleXML

Andrea Franceschini therealmorpheu5 at gmail.com
Thu Mar 1 14:04:54 CET 2007


Salve a tutti. Ho un Warning che mi sta facendo impazzire da giorni.

Ho un file XML con una struttura di questo tipo

<ui>
	<view>
		<xf:input ref="/Data/PersonGivenName" incremental="true">
			<xf:label>Please enter your first name: </xf:label>
		</xf:input>
		<xf:output value="concat('Hello ', /Data/PersonGivenName , '. We
hope you like XForms!')">
			<xf:label>Ouput: </xf:label>
		</xf:output>
	</view>
</ui>

e una chiamata di questo tipo:

$view = $tab->ui->view->children('http://www.w3.org/2002/xforms');

che è perfettamente lecita, e infatti funziona. Poi faccio questo foreach

foreach($view as $tag) {
	$newtab['ui'] .= $tag->asXML();
}

e $newtab['ui'] viene riempita esattamente con l'XML che vorrei che ci
fosse, ovvero quello contenuto nel tag <view> visto sopra. Peccato che
a questo punto SimpleXML cominci a delirare di cose tipo

<b>Warning</b>:  View::render_admin() [<a
href='function.View-render-admin'>function.View-render-admin</a>]:
Node no longer exists in
<b>/home/morpheu5/web/carbon/core/class.view.php</b> on line
<b>165</b><br />

dove la riga 165 è la riga di quel foreach là. Stessa storia se tento
di fare un print_r($view), errore analogo e "nulla" in output (meglio,
diche SimpleXMLElement Object ma lo mostra vuoto). Però funziona!
Ovvero il risultato è proprio quello che mi aspetto di avere! Ho
"risolto" la questione levando i Warning dall'error reporting ma non è
affatto una soluzione felice e non mi piace per niente.

Qualcuno sa qualcosa in merito?


More information about the Php-it mailing list