Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML: Namespace - Zuweisung funktioniert nicht (https://www.delphipraxis.net/69882-xml-namespace-zuweisung-funktioniert-nicht.html)

s-off 22. Mai 2006 09:32

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Hallo marabu,

Zitat:

Damit wollte ich nur ausdrücken, dass durch die Einführung des tags "inputx" das ursprüngliche root element "document" (um bei den tagnames aus deinem Beispiel zu bleiben) um eine Ebene weiter nach unten versetzt wurde und dadurch der XPath Ausdruck nicht "/document" sondern "/inputx/document" sein muss - wie du es ja selbst richtig erkannt hast.
hmm, damit wäre ich ja wieder da, wo ich gestern auch schon war - denn mit '/inputx/document' hatte ich es ja bereits vergeblich versucht :?

Zitat:

Noch ein Tip: es ist nicht gut, wenn du in einem Projekt gleich mehrere persönliche Forschungsgebiete angehst.
Das habe ich auch schon gemerkt :wink:
Nur leider kann man es sich oftmals nicht aussuchen, gerade dann, wenn einem die Zeit im Nacken sitzt. Aber in diesem Fall war es wohl tatsächlich eine absolute Fehlentscheidung :( Wahrscheinlich wäre ich wirklich schneller gewesen, wenn ich erst alle Themen in kleinen Beispielprojekten durchgegangen wäre :?

Nun ja, dann tüftel ich jetzt mal noch ein bissel mit '/inputx/document' herum.

Da aber Node := xmlDoc.selectSingleNode('/inputx/document') as IXMLDOMElement schon Nil geblieben ist, wird das wahrscheinlich wieder ein heilloses Unterfangen :|

Trotzdem danke, dass Ihr Euch so bemüht :wink:

MathiasSimmack 22. Mai 2006 09:38

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Zitat:

Zitat von s-off
Wenn Du das Thema auf Anhieb verstanden hast, als Du anfingst, Dich damit zu beschäftigen, dann finde ich das schön - geh aber bitte nicht davon aus, dass es jedem so leicht fällt, sich in neue Dinge innerhalb kürzester Zeit einzuarbeiten.

Ist sicher eine Frage des Interesses. Ich habe mit Begeisterung die entsprechenden Kapitel im Platform SDK gelesen und viel experimentiert. Dafür gibt es andere Themen, die mich weniger interessieren, und mit denen ich dann Schwierigkeiten hätte. :stupid:


Nun versteh mich bitte nicht falsch, aber was ist an deiner XML-Datei denn so "intern" oder "geheim" (in Ermangelung eines besseren Begriffs), dass du hier eine ähnlich strukturierte Datei postest, aber eben nicht das Original? Es sind manchmal Kleinigkeiten, die den Erfolg verhindern (Darsteller aus der P*rnobranche hören das oft :mrgreen:), und dazu gehört für mich eben, dass du einerseits die falsche Datei, aber den richtigen Code zeigst.

Komm schon, Chinesen sind doch gar nicht anwesend ... :zwinker:

s-off 22. Mai 2006 10:00

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Hehe :wink:

Geheimes steht da nicht drin - es ist nur so, dass die Datei gut 14 MB groß ist.
Daher habe ich das Ganze etwas verkürzt nachgestellt.

marabu 22. Mai 2006 10:10

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Bei dieser Dateigröße brauchst du schon gute Argumente dafür, dass du die ganze Datei als DOM-Dokument im Hauptspeicher hältst. Schau dir mal den Speicherverbrauch im Taskmanager an. Eventuell ist ja SAX eine bessere Lösung für dein Problem.

marabu

s-off 22. Mai 2006 10:20

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Au Backe - daran habe ich gar nicht gedacht.

Und ist mir ehrlich gesagt auch gar nicht unangenehm aufgefallen - hmm, bei 2GB wohl auch kein Wunder :?

Werde mir dieses SAX dann wohl auch mal zu Gemüte führen müssen.

*Wuaaaaaaaaaa*heul*

Danke für den Hinweis - das hätte derbe ins Auge gehen können :roll:

s-off 22. Mai 2006 11:10

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Tjo,

habe nun wohl alle möglichen Kombinationen ausprobiert:

Delphi-Quellcode:
RootNode := xmlDoc.selectSingleNode('inputx');
RootNode := xmlDoc.selectSingleNode('/inputx');
RootNode := xmlDoc.selectSingleNode('//inputx');

RootNode := xmlDoc.selectSingleNode('inputx/document');
RootNode := xmlDoc.selectSingleNode('/inputx/document');
RootNode := xmlDoc.selectSingleNode('//inputx/document');

RootNode := xmlDoc.documentElement.selectSingleNode('inputx');
RootNode := xmlDoc.documentElement.selectSingleNode('/inputx');
RootNode := xmlDoc.documentElement.selectSingleNode('//inputx');

RootNode := xmlDoc.documentElement.selectSingleNode('inputx/document');
RootNode := xmlDoc.documentElement.selectSingleNode('/inputx/document');
RootNode := xmlDoc.documentElement.selectSingleNode('//inputx/document');
Ich denke mal, mehrere Möglichkeiten gibt es nicht mehr - RootNode ist jedenfalls immer NIL :|

Ich gebe es auf und lege den ganzen Kram ad acta - keine Lust mehr....

Vielen Dank trotzdem nochmal für Eure Unterstützung. Ihr konntet mir das Thema XML ein wenig näher bringen, auch wenn es für den finalen Erfolg nicht genügt hat - was aber wohl aus meiner eigenen Schusseligkeit resultiert. Vielleicht bin ich auch nicht offen genug, mich 100% auf das Thema einzulasssen - ich weiss es nicht.

Einen positiven Nebeneffekt hat das Ganze jedoch gehabt - ich weiss nun endlich den VirtualTreeView grundlegend zu bedienen :stupid:

marabu 22. Mai 2006 11:21

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Sascha, es müssten doch schon die ersten 5 Zeilen deiner Originaldaten reichen um dein Problem nachzustellen - oder?

marabu

s-off 22. Mai 2006 11:56

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Okidoki, hier der Anfang der besagten XML-Datei:

XML-Code:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Document>
   <Folder>
      <name>My Places</name>
       <open>1</open>
       <Folder>
         <name>Ordner1</name>
         <open>1</open>
         <Placemark>
              <name>Placemark1</name>
              <LookAt>
                <longitude>10.37993318693747</longitude>
                <latitude>19.35357660723419</latitude>
                <range>743945.2733547823</range>
                <tilt>-1.858292979523515e-013</tilt>
                <heading>1.206473994247129</heading>
              </LookAt>
              <styleUrl>root://styleMaps#default+nicon=0x307+hicon=0x317</styleUrl>
              <Point>
                <coordinates>10.37993318693747,19.35357660723419,0</coordinates>
              </Point>
         </Placemark>

MathiasSimmack 22. Mai 2006 12:14

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Code:
/kml/Document/Folder
für den obersten. Schreibweise beachten! XML legt Wert auf korrekte Groß- und Kleinschreibung der Knotennamen. So ist <Document> eben nicht <document>, usw.

s-off 22. Mai 2006 13:15

Re: XML: Namespace - Zuweisung funktioniert nicht
 
Also,

Du glaubst es jetzt wahrscheinlich nicht, aber

Delphi-Quellcode:
procedure TfrmMain.toolbarButtons_btnOpenFileClick(Sender: TObject);
var
   nlist: ixmldomnodelist;
   Node: IXMLDOMElement;
begin
   if OpenDialog1.Execute then
   begin
      xmlDoc := CoDomDocument40.Create;
      xmlDoc.async := False;
      sXMLFileName := OpenDialog1.FileName;
      xmlDoc.Load(sXMLFileName);
      Node := xmlDoc.documentElement.selectSingleNode('/kml/Document/Folder') as IXMLDOMElement;
      //Node := xmlDoc.selectSingleNode('/kml/Document/Folder') as IXMLDOMElement;
      showmessage(node.text);
      oStatusBar1.Panels[0].Caption := sXMLFileName;
   end;
end;
funktioniert nicht :gruebel: :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr.
Seite 2 von 5     12 34     Letzte »    

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