Mostrar datos en Index.php a partir de un XML

Hola a todos.

Soy nuevo en Yii y estoy desarrollando mi primera aplicación y tengo alguna dificultad. Espero no robaros mucho tiempo con este dilema.

Os cuento lo que pretendo hacer con un ejemplo.

Supongamos que tengo un XML:




<?xml version="1.0" encoding="UTF-8"?>


<Continente Name="Europa">

	<Pais Name="Spain">

		<Ciudad Name="Madrid">

			<Datos Name="uno" Value="100" />

			<Datos Name="dos" Value="200" />

		</Ciudad>

		<Ciudad Name="Barcelona">

			<Datos Name="uno" Value="110" />

			<Datos Name="dos" Value="220" />

		</Ciudad>

	</Pais>

	<Pais Name="Francia">

		<Ciudad Name="Paris">

			<Datos Name="uno" Value="140" />

			<Datos Name="dos" Value="260" />

		</Ciudad>	

		<Ciudad Name="Lyon">

			<Datos Name="uno" Value="330" />

			<Datos Name="dos" Value="210" />

		</Ciudad>	


	</Pais>

</Continente>

<Continente Name="America">

	<Pais Name="Argentina">

		<Ciudad Name="Buenos Aires">

			<Datos Name="uno" Value="150" />

			<Datos Name="dos" Value="260" />

		</Ciudad>

		<Ciudad Name="La Plata">

			<Datos Name="uno" Value="180" />

			<Datos Name="dos" Value="900" />

		</Ciudad>

	</Pais>

	<Pais Name="Brasil">

		<Ciudad Name="Sao Paulo">

			<Datos Name="uno" Value="150" />

			<Datos Name="dos" Value="260" />

		</Ciudad>

	</Pais>

</Continente>



Me gustaría que desde la página principal de la aplicación (view/site/index.php) se muestren dos dropdown, uno de selección de continente y otro dinámico de selección de pais en función del contienente seleccionado.

Una vez seleccionado continente y país mostraría los datos de las ciudades de la selección leyendo el xml.

La verdad es que estoy hecho un lío. He leído mucha documentación pero estoy saturado y desorientado :(

¿Sería mejor meter toda esa información en BD y trabajar con AR? Supongo que no tendría que hacer CRUD porque sólo pretendo mostrar una información que me proporcionan.

¿Debería crear una clase en la carpeta de components (protected/components/leedatos.php) con el código de lectura del xml y dentro de la misma crear una carpeta views con otro archivo con la vista (protected/components/views/leedatos.php)?

¿Cómo podría llamar desde index para que mostrara todo eso?

Tengo conocimientos de programación, pero me falta mucha práctica con el framework.

Gracias de antemano.

Saludos.

Creo que lo mejor es que si son fijos los tengas en la base de datos o en un archivo como el de configuración…

Para incluir un archivo como array tenés que poner:

$miArray = include(‘nombredemiarchivo.php’);

y listo…

Igualmente, si son valores constantes, porque no en una clase estatica que devuelva el arreglo en una funcion estática??

Hay muchas formas!!

Saludos,

Hola Sebas. Gracias por la respuesta. Creo que lo que voy a hacer es parsear el xml y pasarlo a la BD conforme más me convenga para luego crear un modelo y trabajar con el.

Ya os contaré que tal. Saludos.