none
Modificar masivamente cabecera de archivos XML RRS feed

  • Pregunta

  • Buenos dias,

    Alguien tiene alguna manera de realizar masivamente algun cambio de valor en la cabecera de archivos XML

    Gracias por cualquier ayuda y/o sugerencia.

    sábado, 12 de septiembre de 2009 16:42

Respuestas

  • hola

    si veo que estas utilizando infopath, bien

    Get Attribute of xsf:xDocumentClass Node in manifest.xsf

    analiza este link, alli intentan cambia un atributo en el mismo tag que tu necesitas, no es el mimo atributo pero la tecnica es la misma

    analiza los ejemplos del medio del post, mas bien unoa d elos ultimos de Jimmy
    veras que hace algo como esto

                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(@"C:\manifest.xsf");

                XmlAttribute nameAttr = xmlDoc.DocumentElement.Attributes["name"];
                if (nameAttr != null && nameAttr.Value.Contains("FormName")  &&
                    !nameAttr.Value.Contains("Prefix-FormName"))
                {
                    nameAttr.Value = nameAttr.Value.Replace("FormName", "Prefix-FormName");
                }

                xmlDoc.Save(@"C:\manifest.xsf");
     

    o sea carga el xml, en tu caso si tienes varios deberas cargar cada una y modificar el atributo, o sea debes cargar cada archivo xml.

    veras que bsuca el nodo en este caso en name, por ahi deberia probar si funcina igual para tu href

    aunque por ahi este otro link tambien ayude
    Working with XML Processing Instructions in C#

    comov eras en tu caso el <? representa un processing instruction, es un tag algo especial, por ahi este otro link de una idea de como accederlo



    Nota: si se que los ejemplos estan en c#, pero son los que encontre, sino los entiendes puedes preguntar, sino tambien usar estas tools para convertir el codigo
    Convert C# to VB.NET
    Code Converter

     



    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 12 de septiembre de 2009 17:27

Todas las respuestas

  • hola

    a que te refieres con cabecera del xml ?

    o sea si tienes un xml por ejemplo este

    <?xml version="1.0" encoding="utf-8" ?>
    <note>
    <from></from>
    <to></to>
    <message></message>
    </note>

    te refieres a cambiar lo que esta en negrita

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 12 de septiembre de 2009 16:51
  • Leandro, tengo lo siguiente..

    <?xml version="1.0" encoding="UTF-8"?><?mso-infoPathSolution productVersion="11.0.8165" PIVersion="1.0.0.0" href="file:///\\xxxxxx\xxxxxx\ITINERANTES%202009\AUSTRAL\FORMATOS%20GENERALES\FICHA%20AUSTRAL%20PARA%20PROVINCIA.xsn" name="urn:schemas-microsoft-com:office:infopath:FICHA-AUSTRAL-PARA-PROVINCIA:-myXSD-2009-02-02T13-58-32" solutionVersion="1.0.0.18" ?><?mso-application progid="InfoPath.Document"?><my:misCampos xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2009-02-02T13:58:32" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003" xml:lang="es">

    Deseo cambiar para varios archivos XML lo que se encuentra en negrita..

    Gracias por tu ayuda
    sábado, 12 de septiembre de 2009 17:05
  • hola

    si veo que estas utilizando infopath, bien

    Get Attribute of xsf:xDocumentClass Node in manifest.xsf

    analiza este link, alli intentan cambia un atributo en el mismo tag que tu necesitas, no es el mimo atributo pero la tecnica es la misma

    analiza los ejemplos del medio del post, mas bien unoa d elos ultimos de Jimmy
    veras que hace algo como esto

                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(@"C:\manifest.xsf");

                XmlAttribute nameAttr = xmlDoc.DocumentElement.Attributes["name"];
                if (nameAttr != null && nameAttr.Value.Contains("FormName")  &&
                    !nameAttr.Value.Contains("Prefix-FormName"))
                {
                    nameAttr.Value = nameAttr.Value.Replace("FormName", "Prefix-FormName");
                }

                xmlDoc.Save(@"C:\manifest.xsf");
     

    o sea carga el xml, en tu caso si tienes varios deberas cargar cada una y modificar el atributo, o sea debes cargar cada archivo xml.

    veras que bsuca el nodo en este caso en name, por ahi deberia probar si funcina igual para tu href

    aunque por ahi este otro link tambien ayude
    Working with XML Processing Instructions in C#

    comov eras en tu caso el <? representa un processing instruction, es un tag algo especial, por ahi este otro link de una idea de como accederlo



    Nota: si se que los ejemplos estan en c#, pero son los que encontre, sino los entiendes puedes preguntar, sino tambien usar estas tools para convertir el codigo
    Convert C# to VB.NET
    Code Converter

     



    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 12 de septiembre de 2009 17:27
  • Gracias por la ayuda Leandro, me sirve de mucho. voy a revisarlo =)
    sábado, 12 de septiembre de 2009 17:42