it-swarm-es.com

¿Puedo usar XML simple para alimentar vistas?

Quiero utilizar el poder de las vistas para manejar mis datos que provienen de un simple xml que representa solo una tabla de cuadrícula

<list>
  <listpos id="12312">
    <foo>attr1</foo>
    <bar>attr bar</bar>
    ...
  </listpos>
  <listpos id="124412">
    <foo>attr 2</foo>
    <bar>attr barxy</bar>
    ...
  </listpos>
  ...
  ...
</list>

Entonces, la tarea principal es mostrar esa tabla ordenable, excluir algunas columnas, filtrar y buscar, etc.

¿Es esto posible con vistas? Sería manejado por un complemento, supongo? ¿O el complemento es solo para salida? (Sé de json, atom etc plugin/modules.)

También probé el módulo de feeds más el analizador xml/xpath y dejé que el importador creara los nodos para que una vista pueda mostrarlos. Pero tengo que eliminarlos de todos modos después de que el usuario cierre la sesión porque se trata de datos confidenciales y no debe mantenerse en el servidor web.

¿Y qué hay de combinar estos datos con otras fuentes, es decir, unirse con una tabla de nodos?

5
groovehunter

Hay un módulo para esto: Vistas XML .

2
Daniel Wehner

La mejor manera de hacer esto sería

  1. Escriba un módulo utilizando una biblioteca XML simple que extraiga datos del xml
  2. Almacenar esos datos en nodos
  3. Use vistas para mostrar esos datos

Ventajas Usando este enfoque

  1. Sin sobrecarga de leer el xml una y otra vez para los visitantes
  2. Digamos que si la estructura XML cambia, no tendrá vacío o error en su vista

En mi experiencia, analizar XML cada vez es muy costoso.

Pero su caso es diferente ya que los datos xml son confidenciales y deben borrarse del servidor cada vez que un usuario cierra la sesión.

Por lo tanto, crear nodos y eliminarlos no es un paso muy inteligente.

La mejor manera sería crear un módulo personalizado usando una biblioteca xml simple y no usar vistas en absoluto. Almacene esos datos en una tabla temporal, muéstrelos usando su módulo personalizado o consulta sql personalizada y luego usando el enlace de usuario eliminando la tabla y xml, a medida que el usuario cierra sesión.

2
Nikhil

Eso no es del todo cierto. Las vistas pueden usar controladores que no dependen de SQL. http://drupalmodules.com/module/entityfieldquery-views-backend es un ejemplo de un módulo que pretende hacer algo así. Estoy seguro de que hay otros. http://developmentseed.org/blog/2009/feb/05/extendr-flickr-and-views es un interesante caso de estudio de algo similar también.

Dicho esto, probablemente no sea una tarea simple.

1
user112

Si desea que las vistas accedan a sus datos XML, deberá almacenarlos en una base de datos. Todo lo que las vistas realmente hacen es crear SQL para usted y proporcionar algunas funciones de temática diferentes para generar los datos.

Hay algunos módulos que pueden ayudarlo con esto. Como tiene datos personalizados, el módulo datos es probablemente la mejor opción. Esto mantendría los datos en una tabla personalizada.

Puede crear un trabajo cron para eliminar entradas anteriores a x horas/días para asegurarse de no almacenar los datos de forma permanente. Es un poco más limpio de esta manera y la mejor opción que se me ocurre.

0
googletorp