none
c# Renombrar elemento en un string XML RRS feed

  • Pregunta

  • Hola, me gustaria renombrar un elemento en un string de XML usando XDocument.

    el XML seria:

     <element p2:type="devModel.GetEventHistory_Result" xmlns:p2="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
        <event_date p2:type="Edm.DateTime">2017-01-24T14:35:21.643</event_date>
        <event_id xml:space="preserve">FTIP  </event_id>
        <event>FALLO TEST IP</event>
        <comment p2:null="true" />
      </element>

    Quiero cambiar el nombre del elemento "event" por "Event" conservando el contenido ya que en C# da conflicto.

    el código C# es:

     XDocument xmlDoc = XDocument.Parse(content);
     XmlSerializer serializer = new XmlSerializer(typeof(ObservableCollectionEvent));
    using (TextReader reader = new StringReader(xmlDoc.ToString()))
    {
    	Test.Add(new GetTestHistory.element()
    	{
    		id = cont,
    		event_date = drawn_xml.event_date,
    		event_id = drawn_xml.zonestate_descr,
    		Event = drawn_xml.Event,
    		...

    inserto directamente el string en un ObservableCollection.

    Muchas gracias por la ayuda.


    miércoles, 25 de enero de 2017 19:53

Todas las respuestas

  • Si quieres cambiar el nombre del elemento desde el string XML, simplemente utiliza String.Replace("<event>", "<Event>") "Claro también remplazando las etiquetas de cierre"

    Si estas pasando los datos al leer tu XML a un nuevo objeto, nada mas es necesario que tu entidad tenga la propiedad "Event" y al serializar tu entidad de nuevo a XML ya debería estar respetando el nombre <Event>

    miércoles, 15 de marzo de 2017 19:33