Pregunta

Estoy construyendo una biblioteca para acceder a la API de datos de Google Analytics de exportación. Todos los datos de los accesos de la biblioteca están en formato Atom y utiliza numerosos espacios de nombres diferentes a lo largo. Mis experimentos con la API han utilizado para analizar SimpleXML hasta ahora, sobre todo porque todo lo que he estado haciendo es acceder a los datos contenidos en la alimentación.

Ahora ya voy a escribir una biblioteca me pregunto si sigue adelante con SimpleXML será adecuada o si la funcionalidad mejorada del módulo DOM en PHP sería de beneficio en el futuro. No he escrito mucho código para esta parte de la biblioteca sin embargo, por lo que la elección es todavía abierto.

He leído que el módulo PHP DOM puede ser una mejor opción si usted necesita para construir un DOM XML sobre la marcha o modificar una existente, pero no estoy del todo seguro de que iba a necesitar que la funcionalidad de todos modos debido a la naturaleza de la API (sin tener que enviar datos al servidor, por ejemplo). SimpleXML es ciertamente más fácil de usar y he visto gente que dice que para situaciones de sólo lectura es todo lo que necesita.

En esencia, la pregunta es, ¿qué usarías? La compatibilidad no será un problema ya que la configuración del servidor coincidirá con los requisitos de la aplicación. ¿Vale la pena la construcción de la biblioteca con PHP DOM en cuenta o debería seguir con SimpleXML por ahora?

Actualización: He aquí dos ejemplos del tipo de alimentos que se van a tratar:

    Cuenta
  1. alimentación
  2. de Datos alimentación
¿Fue útil?

Solución

Mi opinión sobre ella:

pros SimpleXML:

  • Simple
  • Semi-intuitiva no detallado código
  • Gran para la lectura / procesadores de documentos

contras SimpleXML:

  • Terrible para XML de generación.
  • Falta de flexibilidad y potencia

DOM pros:

  • tremendamente poderosa
  • Grande para la generación de documentos
  • será familiar si has hecho cualquier otra scripting DOM (por ejemplo: en Javascript)

DOM contras:

  • Verbose
  • A veces innecesariamente complicado.

Yo personalmente se pegaría a DOM todo el camino. Esta guía le ayudará en cualquier lugar que necesite ir. La documentación es más que suficiente, y aunque sus manos podrían obtener dolor de toda la tipificación, que no se consigue el pensamiento frustrado "por qué no puede simplemente hacer este ??"

Si todo lo que necesita hacer es leer un documento, o hacer un poco de edición muy básico, entonces probablemente vaya con SimpleXML. Para mí, sin embargo, estoy acostumbrado a las bibliotecas de DOM, por lo que sólo tiene que utilizar que en todas partes y es genial.

Otros consejos

SimpleXML es perfectamente capaz de hacer frente a los espacios de nombres. En su caso sólo hay que iterar a través de las entradas, utiliza el getNameSpaces y pasar un argumento al método children a petición de los niños con un cierto espacio de nombres.

Dicho esto, se puede utilizar DOM si desea escribir el código de 3x.

Bueno, si es necesario reinventar la rueda, probablemente utilizar SimpleXML ... o usted podría utilizar el Zend_Gdata (si lo que necesita es de allí) o se extienden Zend_Feed_Atom si no lo es. Cualquiera de estas opciones debe probablemente la mitad de la cantidad de trabajo que tiene que hacer:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top