Estoy escribiendo un script que toma una página web y detecta cuántas veces se usan cosas como un botón de Facebook. Como esto se haría mejor con un DOM, decidí usar DOMDocument de PHP.PHP DOMDocument Namespaces
El único problema que he encontrado, sin embargo, es para elementos como el facebook del botón como:
<fb:like send="true" width="450" show_faces="true"></fb:like>
Desde este elemento técnicamente tiene un espacio de nombres de "FB", DOMDocument lanza una advertencia diciendo que este prefijo de espacio de nombres es no definida. A continuación, procede a quitar el prefijo, por lo que cuando llego a dicho elemento, su etiqueta ya no es fb: como, sino como.
¿Hay alguna manera de "preinscribir" un espacio de nombres? ¿Alguna sugerencia?
esto sonaba como un muy solución directa así que decidí correr con él. Aquí está el código que terminé con cualquiera que odie la expresión regular. '// almacena los elementos espaciados por nombre para que podamos volver a agregarlos más adelante' ' $ postContent = preg_replace ('/ <(\ w +): (\ w +) /', '<\ 1 namespace = "\ 2" ', $ postContent); ' ' // reconstruye las etiquetas con espacios entre nombres' '$ postContent = preg_replace ('/<(\ w +) namespace =" (\ w +) "/ ',' <\ 1 : \ 2 ', $ postContent); ' – lupos