Laden...

[gelöst] die Read-Funktion des XmlReaders verursacht einen Fehler

Erstellt von annettwurfel vor 11 Jahren Letzter Beitrag vor 11 Jahren 4.264 Views
A
annettwurfel Themenstarter:in
45 Beiträge seit 2009
vor 11 Jahren
[gelöst] die Read-Funktion des XmlReaders verursacht einen Fehler

Hallo Leute ich brauch mal wieder eure Hilfe da ich hier sonst verrückt werde.

Also es geht um folgendes:
Ich habe eine WPF-Anwendung erstellt in der ich in einer der Unterklassen der Anwendung möchte ich mit der Hilfe eines XmlReaders ein paar Daten aus einer Xml-Datei lesen

Die Reader-Instanz erstelle ich so:

XmlReader reader = XmlReader.Create(Path);

Wenn ich jetzt mit der typische Schleife das lesen beginnen möchte fliegt mir das ganze um die Ohren:

while(reader.Read())
{
//do something
}

Dabei erscheint die folgende Fehlermeldung:
Zeilennummer "8" und Zeilenposition "9" von "Durch den Aufruf des Konstruktors für Typ "XML_Project.MainWindow", der den angegebenen Bindungseinschränkungen entspricht, wurde eine Ausnahme ausgelöst.".

Wenn ich ein ähnliches Projekt ausführe welches auf einem anderen Rechner läuft passiert das gleiche.
Hattet ihr das auch schon mal? Ich bin mir ziemlich sicher dass ich wieder irgendwo unbewusst etwas verstellt habe aber ich weiß nicht wo.

Noch ein paar Informationen zum Schluss:
ZielFramework: .NET 4
IDE: VS2010

Viele Grüße Annett

PS: Da das meine erste richtige WPF-Anwendung werden soll habe ich noch nicht wirklich Ahnung von WPF und weiß wirklich nicht wie am besten an das Problem herangehen soll.

849 Beiträge seit 2006
vor 11 Jahren

Hallo Annett,

meist steht bei solchen Fehlermeldungen die eigentliche Exception in der InnerException.
Die Exception die Du gepostet hast, ist nur ein "Wrapper" um den eigentlichen Fehler.

Gruß

W
40 Beiträge seit 2006
vor 11 Jahren

Servus,

schau Dir mal den Path an, liegt an der Stelle überhaupt Dein xml-File? Ich vermute, dass der Path ins bin\debug.... schaut..

vlg
WW

A
annettwurfel Themenstarter:in
45 Beiträge seit 2009
vor 11 Jahren

Hallo Leute!

Also der Dateipfad der XML-Datei ist gültig. Ich lasse den Pfad mit der Hilde eines OpenFileDialogs einlesen und im Anschluss prüfe ich noch ob die Dati existiert und die korrekte Endung hat (da die Pfade auch über den Argumentenvektor übergeben werden können).

Und hier habe ich nochmal die die komplette Fehlermeldung:

Fehlermeldung:
System.Windows.Markup.XamlParseException wurde nicht behandelt.
Message=Zeilennummer "8" und Zeilenposition "9" von "Durch den Aufruf des Konstruktors für Typ "XML_Statistics.MainWindow", der den angegebenen Bindungseinschränkungen entspricht, wurde eine Ausnahme ausgelöst.".
Source=PresentationFramework
LineNumber=8
LinePosition=9
StackTrace:
bei System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
bei System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
bei System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
bei System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
bei System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
bei System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)
bei System.Windows.Application.DoStartup()
bei System.Windows.Application.<.ctor>b__1(Object unused)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
bei System.Windows.Threading.DispatcherOperation.InvokeImpl()
bei System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
bei System.Threading.ExecutionContext.runTryCode(Object userData)
bei System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Windows.Threading.DispatcherOperation.Invoke()
bei System.Windows.Threading.Dispatcher.ProcessQueue()
bei System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
bei System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
bei MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
bei System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
bei System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
bei System.Windows.Application.RunDispatcher(Object ignore)
bei System.Windows.Application.RunInternal(Window window)
bei System.Windows.Application.Run(Window window)
bei System.Windows.Application.Run()
bei XML_Statistics.App.Main() in D:\Path\to\Project\XML-Statistics\XML-Statistics\obj\x86\Debug\App.g.cs:Zeile 0.
bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Xml.XmlException
Message=Das Stammelement ist nicht vorhanden.
Source=System.Xml
LineNumber=0
LinePosition=0
SourceUri=file:///C:Path/to/example/files/example3.xml
StackTrace:
bei System.Xml.XmlTextReaderImpl.Throw(Exception e)
bei System.Xml.XmlTextReaderImpl.ParseDocumentContent()
bei System.Xml.XmlTextReaderImpl.Read()
bei XML_Statistics.ResultfileCreator.CountDifferentNodetypes(String Path, XmlNodeType xnt) in D:\Path\to\Project\XML-Statistics\XML-Statistics\ResultfileCreator.cs:Zeile 159.
bei XML_Statistics.ResultfileCreator.CountComments(String FilePath) in D:\Path\to\Project\XML-Statistics\XML-Statistics\ResultfileCreator.cs:Zeile 72.
bei XML_Statistics.ResultfileCreator.ReadASingleXmlFile(String Path) in D:\Path\to\Project\XML-Statistics\XML-Statistics\ResultfileCreator.cs:Zeile 40.
bei XML_Statistics.ResultfileCreator..ctor(String[] FilePathArray) in D:\Path\to\Project\XML-Statistics\XML-Statistics\ResultfileCreator.cs:Zeile 19.
bei XML_Statistics.MainWindow.ReadXmlFiles(String[] Path) in D:\Path\to\Project\XML-Statistics\XML-Statistics\MainWindow.xaml.cs:Zeile 58.
bei XML_Statistics.MainWindow..ctor() in D:\Path\to\Project\XML-Statistics\XML-Statistics\MainWindow.xaml.cs:Zeile 46.
InnerException:

Ich hoffe dass mir jemand von euch helfen kann.

viele Grüße Annett

W
40 Beiträge seit 2006
vor 11 Jahren

Hi,

was genau steht in der Variablen "Path"? Ich bin fest der Meinung, dass die der Inhalt der Varuablen kein gültiger Pfad ist, bzw. mit dem Inhalt die XML Datei nicht geöffnet werden kann.

lg
WW

5.658 Beiträge seit 2006
vor 11 Jahren

Fehlermeldung:
Message=Das Stammelement ist nicht vorhanden.
Source=System.Xml
LineNumber=0
LinePosition=0
SourceUri=file:///C:Path/to/example/files/example3.xml

Das Stammelement ist nicht vorhanden. Schau mal in die XML-Datei rein, falls sie überhaupt unter der angegebenen URI zu finden ist. Für mich sieht das jedenfalls ziemlich ungültig aus, bei C:Path fehlt zumindest mal ein Backslash.

Christian

Weeks of programming can save you hours of planning

A
annettwurfel Themenstarter:in
45 Beiträge seit 2009
vor 11 Jahren

Oh ja ich sehe es gerade. Die XML-Datei hatte Fehler. Da kann man nur sagen: wer seine XML-Files aufmersam anschaut spart sich viel Arbeit.

Vielen Dank MrSparkle

und vielen Dank auch an alle anderen.

Viele Grüße Annett

5.299 Beiträge seit 2008
vor 11 Jahren

noch effizienter eingesetzt scheint mir die Aufmerksamkeit, wenn man damit die Fehlermeldung anschaut. 😉

Das IDE-Fehlermelde-Fenster bietet auch einen Link "Details anzeigen", und in den Details kann man auch die InnerException angugge, wenns eine gibt.

Der frühe Apfel fängt den Wurm.