Próbuję odczytać następujący ciąg, przechwycony z UdPAppender log4net.XDokument lub XElement parsowanie elementu XML zawierającego przestrzenie nazw
<log4net:event logger="TestingTransmitter.Program"
timestamp="2009-08-02T17:50:18.928+01:00"
level="ERROR"
thread="9"
domain="TestingTransmitter.vshost.exe"
username="domain\user">
<log4net:message>Log entry 103</log4net:message>
<log4net:properties>
<log4net:data name="log4net:HostName" value="machine" />
</log4net:properties>
</log4net:event>
Podczas próby XElement.Parse lub XDocument.Parse treść, zgłasza wyjątek:
'log4net' jest nazw nierejestrowana. Linia 1, pozycja 2.
wiem, że mogę wyszukać i zastąpić „log4net:” w oryginalnym ciąg i usunąć go, pozwalając mi do analizowania XML z powodzeniem, ale tam jest lepszy sposób? Jest to kompletne dane przechwycone (sformatowany, aby umożliwić odczyt), nie istnieją żadne deklaracje przestrzeni nazw xml wykonane lub usunięte ..
-1 za używanie 'new XmlTextReader()', przestarzałe od .NET 2.0. –
@JohnSaunders, gdzie to widziałeś? Nie wygląda to na przestarzałe: http://msdn.microsoft.com/en-us/library/system.xml.xmltextreader(vsv1.110).aspx – georgiosd
FYI, nie powinieneś używać 'new XmlTextReader()' lub 'nowy XmlTextWriter()'. Zostały one wycofane od .NET 2.0. Zamiast tego użyj 'XmlReader.Create()' lub 'XmlWriter.Create()'. –