AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi MSXML: Nicht valide Nodes ignorieren
Thema durchsuchen
Ansicht
Themen-Optionen

MSXML: Nicht valide Nodes ignorieren

Ein Thema von Mr_G · begonnen am 18. Jan 2009 · letzter Beitrag vom 11. Feb 2009
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#1

MSXML: Nicht valide Nodes ignorieren

  Alt 18. Jan 2009, 11:06
Hallo zusammen,
hier ist beschrieben wie man mittels MSXML sein XML-Dokument gegen ein XSD-Schema prüfen kann. Gibt es mit MSXML eine Möglichkeit die Teilstrukturen, die nicht den Vorgaben entsprechen herauszufiltern und mit dem Rest weiterzuarbeiten?
Gruß

Mr_G
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#2

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 20. Jan 2009, 11:41
*push*
Jan
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 28. Jan 2009, 15:12
Hallöle,
nunja vll bastelste dir was aus den Angaben, die ParseError.Code, ParseError.SrcText und so weiter geben.
Genaueres kann ich dir leider zur Zeit auch nicht sagen...versuche mich selbst an dem MSXML und er lädt nicht falls die geladene Datei mit dem XSD Schema nicht 100% übereinstimmt.
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#4

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 28. Jan 2009, 17:52
Nunja... ich hab auch schon übelegt ob ich das selber bastel aber derzeit glaube ich es ist in meinem Fall fast einfacher nicht mit XSD zu validieren sondern einfach bei Zugriffsfehlern den aktuellen Vorgang abzubrechen.
Sollte es eine einfache Lösung mit MSXML geben: Immer her damit...
Jan
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 2. Feb 2009, 14:57
Ich parse die XML-Datei bisher und breche den Vorgang bei einem Fehler ab, dann lade ich sie ohne Überprüfung
in mein Textfeld und markiere mit ParseError.Line die Zeile (benutzte dafür SynEdit) und gebe unten die ParseError.Reason aus...sodass man wenigstens weiß was an der XML-Datei falsch ist.

Nun habe ich allerdings das Problem das wenn ich ein Schema einbinde, der Namespace identisch mit dem aus der Datei sein muss...also...so ganz fehlerfrei funktioniert es bisher nicht...aber ich schau mal weiter...durchwühle schon die ganze Zeit die MSXML 4.0 SDK Dokumentation.

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#6

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 2. Feb 2009, 17:21
So eine Ausgabe wäre bei mir eher nicht praktikabel, denn es geht um einen Dienst der die Daten ausliest. Ich denke ich werde das ohne XSD machen und evtl. auftretende Fehler abfangen, sodass ich zumindest die korrekten Nodes alle einlesen kann. Alternativ wäre ganz abzubrechen aber das gefällt mir eigentlich nicht so gut.
Jan
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 3. Feb 2009, 11:40
Nunja was vll. möglich wäre...bei DOMDocument60 also bei MSXML 6.0 kann man scheinbar die einzelnen Nodes validieren, gibt da eine Funktion wo man einen Knoten angibt und dann einen ParseError zurück kriegt.

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#8

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 3. Feb 2009, 18:11
Das wäre natürlich eine interessante eine Alternative. Danke für den Tipp!
Jan
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 4. Feb 2009, 12:27
Nur was mir dabei aufgefallen ist, ich kann ein einmal hinzugefügtes Schema nichtmehr entfernen.
Da erscheint nur eine Exception "Keine Implementierung"...keine Ahnung ob das nur bei mir ist.+

Edit: Habe es mal gelöst, indem ich jedesmal die SchemaCollection neuerstelle...etwas unschön...aber scheinbar entstehen auch keine MemoryLeaks.

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: MSXML: Nicht valide Nodes ignorieren

  Alt 4. Feb 2009, 13:10
Zitat von Alaitoc:
aber scheinbar entstehen auch keine MemoryLeaks
Wie hast du das festegestellt?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz