elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: [1] 2 3
1  Programación / PHP / Re: Parsear XML con (.) y (:) en "tag names" usando simpleXml de PHP en: 10 Febrero 2014, 21:45 pm
La parte de los dos puntos está "apañada" y digo apañada por que en realidad no uso un parseador para tratar este dato, si no que directamente elimino los dos puntos y con eso me funciona en aquellos nodos que contienen los dos puntos ( : ) y no contienen puntos ( . ), por ejemplo:

Código
  1. <host:VirtualHost xmi:id="VirtualHost_1391153615303" name="ABCD">
  2. <mimeTypes xmi:id="MimeEntry_1391153615303" type="application/RAL">
  3. <extensions>RAL</extensions>
  4. <extensions>ral</extensions>
  5. </mimeTypes>
  6. </host:VirtualHost>

Para parsear el namespace host:VirtualHost y obtener el valor de la propiedad name lo que hago es eliminar los dos puntos de la siguiente manera con la función preg_replace y luego parseo el contenido como string (no como archivo) con la función simplexml_load_string:

Código
  1. $loadArchivoXml = file_get_contents(archivo.xml);
  2. $loadArchivoXml = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $loadArchivoXml);
  3. $loadArchivoXml = simplexml_load_string($loadArchivoXml);
  4. foreach($loadArchivoXml->hostVirtualHost as $virtualHost) {
  5. echo "El valor de la propiedad name es: ".$virtualHost['name'];
  6. }

Siendo la salida...

Código
  1. El valor de la propiedad name es: ABCD

Solo pongo esto por si alguno tiene el problema de parsear namespaces con dos puntos ( : ), pero no es la solución a mi problema, ya que sigo sin saber cómo tratar los namespaces con puntos ( . ) y haciendo el mismo proceso no meha funcionado  :-(, a ver si a alguno de vosotros se os ocurre alguna idea mejor. Pongo otra vez el trozo de XML con el que quiero trabajar:

Código
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
  3. xmlns:com.ibm.ejs.models.base.bindings.webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_1267660235297" virtualHostName="ABCD_01">
  4.  <webapp href="WEB-INF/web.xml#WebApp_1267500236267"/>
  5. </com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding>


Un saludo y gracias de antemano.
2  Programación / Desarrollo Web / Re: ¿Qué editor de código utilizas? en: 10 Febrero 2014, 21:18 pm
Para C, C++ y Java uso Eclipse, y para Tcl, ShellScript, Python, Perl, PHP y demás uso Komdo (en Mac) y Ultraedit (en Windows).
3  Programación / PHP / Parsear XML con (.) y (:) en "tag names" usando simpleXml de PHP en: 10 Febrero 2014, 10:13 am
Hola a todos,
llevo un par de días probando varias cosas pero no lo consigo, el caso es que hay información en la web sobre cómo parsear xml cuando este tiene dos puntos en los namespaces pero mi problema va un poco mas allá, este es un fragmento del xml (en realidad es un XMI, no un XML) que quiero parsear:

Código
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
  3. xmlns:com.ibm.ejs.models.base.bindings.webappbnd="webappbnd.xmi" xmi:id="WebAppBinding_1267660235297" virtualHostName="ABCD_01">
  4.  <webapp href="WEB-INF/web.xml#WebApp_1267500236267"/>
  5. </com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding>

Necesito quedarme con el item virtualHostName que pertenece al nodo com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding y este nombre tiene puntos ( . ) y dos puntos ( : ), ¿alguna idea?

Esto es lo último que he probado, sin éxito:

Código
  1. $loadIbmWebBnd = simplexml_load_file(archivo.xmi);
  2. foreach($loadIbmWebBnd->com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding as $vH) {
  3. echo $vH[virtualHostName];
  4. }


Un saludo y muchas gracias de antemano.
4  Programación / Scripting / Re: [Reto Bash] It's a dir? en: 7 Febrero 2014, 07:28 am
En realidad hay 7 tipos definidos en los sistemas BDS y System V que son:

  • (-) Archivo ordinario y tiene la constante asociada en sys/stat.h "S__IFREG"
  • (d) Directorio y tiene la constante asociada en sys/stat.h "S__IFDIR"
  • (p) Cauce nombrado o "fifo" y tiene la constante asociada en sys/stat.h "S__IFIFO"
  • (c) Archivo especial modo carácter y tiene la constante asociada en sys/stat.h "S__IFCHR"
  • (b) Archivo especial modo bloque y tiene la constante asociada en sys/stat.h "S__IFBLK"
  • (l) Enlace simbólico y tiene la constante asociada en sys/stat.h "S__IFLNK"
  • (s) "Shoket" y tiene la constante asociada en sys/stat.h "S__IFSHOCK"

Un saludo.
5  Programación / Desarrollo Web / Re: Expresión regular en MySQL para buscar y sustituir en: 26 Enero 2014, 10:53 am
Drvy y EFEX, muchas gracia a los dos, llamadme cateto pero... no se muy bien cómo adaptar esta función y su invocación a mis datos, arrgggg. Mi tabla se llama prueba, la columna se llama col1 y he de cambiar el string hola:98yef8y por el string adios:

Código
  1. DELIMITER $$
  2. CREATE FUNCTION  `regex_replace`(pattern VARCHAR(1000),replacement VARCHAR(1000),original VARCHAR(1000))
  3.  
  4. RETURNS VARCHAR(1000)
  5. DETERMINISTIC
  6. BEGIN
  7. DECLARE temp VARCHAR(1000);
  8. DECLARE ch VARCHAR(1);
  9. DECLARE i INT;
  10. SET i = 1;
  11. SET temp = '';
  12. IF original REGEXP pattern THEN
  13.  loop_label: LOOP
  14.   IF i>CHAR_LENGTH(original) THEN
  15.    LEAVE loop_label;  
  16.   END IF;
  17.   SET ch = SUBSTRING(original,i,1);
  18.   IF NOT ch REGEXP pattern THEN
  19.    SET temp = CONCAT(temp,ch);
  20.   ELSE
  21.    SET temp = CONCAT(temp,replacement);
  22.   END IF;
  23.   SET i=i+1;
  24.  END LOOP;
  25. ELSE
  26.  SET temp = original;
  27. END IF;
  28. RETURN temp;
  29. END$$
  30. DELIMITER ;
  31.  
  32. SELECT * FROM  `prueba` WHERE col1 regex_replace('hola\:[a-zA-Z0-9\-]*','','adios');

No me está funcionando, no creo que lo esté haciendo bien, pero es que no controlo muy bien esto de las funciones en SQL.
6  Programación / Desarrollo Web / Re: Expresión regular en MySQL para buscar y sustituir en: 25 Enero 2014, 23:47 pm
La function replace no soporta expresiones regulares y creo que no existe funcion mysql que lo soporte.

Gracias EFEX, seguiré mirando a ver si encuentro alguna cosa que me sirva.
7  Programación / Desarrollo Web / Re: Expresión regular en MySQL para buscar y sustituir en: 25 Enero 2014, 23:47 pm
Lee la hojas de expresiones rwgulares eso es un poco mas complicado... no es mas facil que lo hagas en PHP o tienes que hacerlo en mysql puro?

Es en MySQL puro, no es nada PHP. Gracias de todos modos, seguiré mirando a ver si hay algo. Y si no un export, un awk o sed de toda la vida y un import, pero esa será mi última opción.
8  Programación / Desarrollo Web / Re: Expresión regular en MySQL para buscar y sustituir en: 25 Enero 2014, 23:09 pm
Cojonudo, me ha funcionado, lo que no se muy bien cómo hacer es la sustitución en todos los casos que encuentre cadena1:[a-zA-Z0-9]* por cadena2, a sin mas, sin dos puntos ni nada mas a su derecha.

He probado con:

Código
  1. UPDATE `tabla` SET `campo` = REPLACE(`campo`, cadena1\:[a-zA-Z0-9]*, cadena2);

pero no me funciona  :-\
9  Programación / Desarrollo Web / Expresión regular en MySQL para buscar y sustituir en: 25 Enero 2014, 19:58 pm
Saludos, llevo un rato buscando la manera de hacer una búsqueda de una cadena con caracteres especiales, como por ejemplo, corchetes ([]) y dos puntos(:) en una tabla. Concretamente necesito buscar la siguiente cadena:

Código
  1. [cadena1:1234abdc]

He de decir que la parte "1234abcd" puede variar, es alfanumérica y rándom, en cambio "cadena1" es siempre igual. Por ejemplo:

Código
  1. [cadena1:98u34r7y]

La query que estoy intentando es:

Código
  1. SELECT * FROM `tabla` WHERE columna REGEXP '\\[cadena1:*\\]';

Pero no me funciona. La segunda parte de lo que necesito hacer es sustituir cualquier coincidencia de [cadena1:*] por [cadena2], así, solo "[cadena2]", sin dos puntos ni nada mas, entre corchetes.

¿Cómo podría hacer esto?



Un saludo y gracias de antemano por la ayuda.
10  Programación / Programación General / Re: Programar quiniela en C. en: 23 Enero 2014, 22:54 pm
Vale, me parece interesante, pero veo mas facil crearlo con excell y de la misma eficacia

Pues también es verdad. Ojo, cuidado con Excel, que trabajar bien con Excel es la hostia de complicado. Yo tengo un montón de apuntes de cómo hacer fórmulas complejas por trabajo y te puedes cagar.
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines