none
Reemplazar valor en XML con batch RRS feed

  • Pregunta

  • Estimados, hoy recurro a ustedes con la siguiente duda,
    necesito editar un archivo xml desde un batch. Dejo un extracto del xml :

    <havecode>H12090912335303</havecode> 
    <redirectionURL><![CDATA[http://www.jhuehue.idf/default.aspx?ac=jijeijrier&lid=H12090912335303&mname=Ssdmkds&ucode=2012052316331360081&extlink=6]]>
    </redirectionURL>
    <listingdate>1/1/2013 8:24:23 PM</listingdate> 
    <metrocode>SGO</metrocode> 
    <streetname>i990k</streetname> 
    <neighborhood>ijijioihoi</neighborhood>
    <image1>http://images.8sdhjshfjdsdf.cwe/photos.idx/were.irwew/303/5H_1.jpg?modified=20121</image1>

    Lo que necesito es eliminar el tag CDATA (los dejados en negrita) sin tocar la URL.
    Esto debido a que tomando el redirectionURL desde un DTS no me retorna nada, a diferencia de los otros tag,
    por lo que limpiando previamente el archivo xml con un batch solucionaría mi problema.

    Los otros tags que traen direcciones urls pero no incluyen el CDATA son obtenidos sin problemas por el DTS.

    De antemano, muchas gracias.

    pd: para contextualizar, el archivo xml esta siendo trabajado leido desde un DTS pero la idea es limpiar por batch antes de iniciarlo.



    • Editado Krahe miércoles, 2 de enero de 2013 22:23
    miércoles, 2 de enero de 2013 22:23

Todas las respuestas

  • ¿Tiene que ser un batch? Puedes hacer un pequeño programa que lea el xml línea por línea y use la función de expresiones regulares Regex.Replace para quitar de en medio el tag. De hecho, tienes que quitar además del ![CDATA el < que lo precede y el > que cierra. En general, tienes una expresión regular del tipo .*<![CDATA[(grupo)]]>.* y quieres replazarla por .*(grupo).*

    Pero me parece que no te basta con eso. El motivo por el cual usaron ![CDATA[]] es que dentro hay caracteres especiales que necesitas "escapar" (es decir, convertir en una secuencia de caracteres equivalente pero que no sea especial, por ejemplo, usando UTF8).


    logo osoft
    Si he contestado tu pregunta, por favor marca mi post como respuesta.
    ...Y si mi post te ha servido, márcalo como útil smile

    jueves, 3 de enero de 2013 15:40