aşağıdaki xml yapısı alabilirsiniz:Deserialize XML dizesi Hatası Nesne için: xml belgedeki bir hata vardır (1,2) windows olay görüntüleyici itibaren
<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>
Ben EventData bölümünde sadece ilgileniyorum xml.
public class Event
{
public EventData EventData;
}
public class EventData
{
public String[] Data;
}
Sonra şu kodu kullanın: Aşağıdaki çok basit sınıfları oluşturduk
XmlSerializer serializer = new XmlSerializer(typeof(Event));
StringReader reader = new StringReader(evtXml);
evt = (Event)serializer.Deserialize(reader);
ama kodunun ilk satırında
, aşağıdaki hatayı alıyorum:There is an error in XML document (1, 2).
Bu hata bana bilgilendiricidir. Sorun, sınıflardaki tüm alanlara sahip olmadığımdan veya verileri almak için başka bir sınıfa (XmlSerializer dışında) ihtiyacım var mı? Ben EventData altında verileri istiyorum yolu ... adı ve veri değeri (örn isim1 data1 ile) gereğidir vb
Önemli DÜZENLEME: alıyorum xml ait ToXML() yöntemiyle üretilir EventRecord sınıf
Teşekkür
Eh XML belgesi * * geçerli değil - 'Message' etiketi bakmak:' bazı mesaj '. Bu sizin gerçek XML'iniz değilse, lütfen aynı sorunu gösteren kısa ama eksiksiz bir XML parçası ekleyin. –
@JonSkeet: Xml'yi Olay Kaydı sınıfının –
'unXML() yönteminden alıyorum neden bu yöntem http://msdn.microsoft.com/en-us/library/system.diagnostics.eventing.reader.eventrecord.toxml .aspx kötü xml döndürür –