Désérialiser chaîne XML pour Erreur de l'Objet : Il y a une Erreur dans le document xml (1,2)

De l'observateur d'événements windows, je peux obtenir la structure xml suivante:

<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
  <Provider Name="XXXXXXXXXX" Guid="{YYYYYYYY}" /> 
  <EventID>XYZ</EventID> 
  <Version>0</Version> 
  <Level>L</Level> 
  <Task>A</Task> 
  <Opcode>0</Opcode> 
  <Keywords>0x000xyzh</Keywords> 
  <TimeCreated SystemTime="2012-06-28T15:44:04.997837000Z" /> 
  <EventRecordID>153</EventRecordID> 
  <Correlation ActivityID="{DDDDDDDDD}" /> 
  <Execution ProcessID="199999" ThreadID="90990" /> 
  <Channel>Microsoft-Windows-ABCDEFG/Admin</Channel> 
  <Computer>myPC</Computer> 
  <Security UserID="ABCABC" /> 
  </System>
<EventData>
  <Data Name="name1">data1</Data> 
  <Data Name="name2">data2</Data> 
  <Data Name="name3">data3</Data> 
</EventData>
<RenderingInfo Culture="en-US">
  <Message>some message </Message> 
  <Level>Information</Level> 
  <Task>XYZ</Task> 
  <Opcode>Info</Opcode> 
  <Channel /> 
  <Provider /> 
  <Keywords>
  <Keyword>XYZ</Keyword> 
  </Keywords>
</RenderingInfo>
</Event>

Je suis seulement intéressé par le EventData section du xml. J'ai créé le très simples classes:

   public class Event
    {
        public EventData EventData;

    }

    public class EventData
    {
        public String[] Data;
    }

Je puis utiliser le code suivant:

XmlSerializer serializer = new XmlSerializer(typeof(Event));
StringReader reader = new StringReader(evtXml);
evt = (Event)serializer.Deserialize(reader);

mais sur la première ligne de code, j'obtiens l'erreur suivante:

There is an error in XML document (1, 2).

Cette erreur n'est pas instructif pour moi. Le problème est que je n'ai pas tous les domaines, dans les classes ou dois-je besoin d'un autre classe (autres que XmlSerializer) pour obtenir les données. La façon dont je voudrais que les données sous la EventData est par le nom et la valeur de données d'e.g nom1 avec data1) ...etc

Important de MODIFIER:
le xml que je reçois est généré par le ToXML() méthode de la EventRecord classe

Grâce

Bien que le document XML n'est pas valid - regarder la Message tag: <Message>some message <Message>. Si ce n'est pas votre véritable XML, veuillez inclure une brève, mais complète morceau de XML, ce qui démontre le même problème.
Je suis le xml à partir d'toXML() la méthode d'Enregistrement d'Événement de la classe
pourquoi cette méthode msdn.microsoft.com/en-us/library/... de retour de bad xml
J' très beaucoup de doute que le XML exact que vous avez obtenu d' EventRecord.ToXml.
Je ne peut pas mettre le contenu en xml, certaines informations ne sont pas censés être montré désolé. Donc, le problème est avec le xml lui-même?

OriginalL'auteur Saher Ahwal | 2012-06-28