Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   An alle Programmierhengste: XML lesen (https://www.delphipraxis.net/159614-alle-programmierhengste-xml-lesen.html)

roboter202 5. Apr 2011 14:54

AW: An alle Programmierhengste
 
Zitat:

Zitat von Deep-Sea (Beitrag 1093133)
@roboter202:
Du meinst Die Tags [DELPHI] und [/DELPHI] ?! :-D

^^ Wie macht er das ?

ah ich sehe mit [NOPARSE] und[/NOPARSE] :-D

golffahrer 5. Apr 2011 14:58

AW: An alle Programmierhengste: XML lesen
 
1. Ich gebe Sie nirgends frei.
2. Da ich den Inhalt zwischen dem <body> Tag benötige und der mir aber bei einigen Artikel in groß und klein vorliegt, habe ich es 2 Mal.
3. Was genau soll bei einem externen XML-Parser stabiler sein!?

Deep-Sea 5. Apr 2011 15:03

AW: An alle Programmierhengste: XML lesen
 
@golffahrer:
Dann gib sie mal schnell frei :wink:
Z.B. erübrigt sich mit einem Parser das Problem mit der Groß-/Kleinschreibung. Schön, dass du die Fälle "body" und "BODY" verarbeiten kannst, was aber wenn es mal "Body" heißt? :roll: Oder was, wenn der Tag <body> auch mal wo anders benutzt wird, dann findest du das, anstatt den, den du eigentlich möchtest etc. etc. ...


@roboter202:
Und wieder was dazugelernt :wink:

p80286 5. Apr 2011 15:05

AW: An alle Programmierhengste: XML lesen
 
zu 3. Da kannst Du Dir alle verrenkungen Mit Pos und Copy schenken!
zu 2. siehe 3 bzw Uppercase() bzw. CompareText....
zu 1. Wenn Du meinst ....

Gruß
K-H

@DeepSea:
Kannst Du das mal im Klartext machen?
ich hab kein [parse] gesehen

golffahrer 5. Apr 2011 15:11

AW: An alle Programmierhengste: XML lesen
 
Das Freigeben bringt auch nichts.

Es gibt nur <body> in klein und <BODY> in groß, daher nur die 2 Anweisungen.

Gut, dann hat der Parser nichts mit dem eigentlichen Problem zu tun.

Jemand eine Idee!?

Deep-Sea 5. Apr 2011 15:17

AW: An alle Programmierhengste: XML lesen
 
@p80286:
Wie was?! Alles, was du in [NOPARSE] und [/NOPARSE] schreibst, wird eben nicht nach BB-Code geparst, dann kann man eben auch [DELPHI] oder [/DELPHI] schreiben.


Zitat:

Zitat von golffahrer (Beitrag 1093166)
Das Freigeben bringt auch nichts.

Doch: Es gibt kein Speicherleck mehr! :roll:

golffahrer 5. Apr 2011 15:50

AW: An alle Programmierhengste: XML lesen
 
Würde es euch was bringen, wenn ich den Inhalt der .htm mal poste?

Deep-Sea 5. Apr 2011 15:53

AW: An alle Programmierhengste: XML lesen
 
Zitat:

Zitat von golffahrer (Beitrag 1093190)
Würde es euch was bringen, wenn ich den Inhalt der .htm mal poste?

Was ist es denn nun? XML? HTML? XHTML? ...

golffahrer 5. Apr 2011 16:04

AW: An alle Programmierhengste: XML lesen
 
Nochmal von vorne. Ich sende einen Befehl zum Lieferanten und bekomme folgendes zurück:

<item>
<number>123456789</number>
<unitprice>0,00</unitprice>
<description1>Testartikel</description1>
<description2>und so weiter...</description2>
<infourl>
http://testpfad.de/test.HTM
</infourl>
<pictureurl>
http://testpfad.de/test.JPG
</pictureurl>
</item>

Ich entnehme die Daten aus den Knoten und speichere Sie in die Datenbank. Wie Ihr seht gibt es ein <infourl>.
Ich nehme den Pfad http://testpfad.de/test.HTM und streame mir den Inhalt.

Delphi-Quellcode:
 ...
if n = 'infourl' then
                            begin
                              PostDataStream := TStringStream.Create('');
                              ParamData := TStringStream.Create('');
                              ParamData.WriteString('');
                              ArtikelAdsTable.FieldByName('Infourl').AsString := s;
                              HtmlCodeIdHTTP.Post(s, ParamData, PostDataStream);
                              ArtikelAdsTable.FieldByName('Infotextalles').AsString := PostDataStream.DataString;
                              BodyJvRichEdit.Clear;
                              BodyJvRichEdit.Text := PostDataStream.DataString;
                              if Pos('<BODY>', BodyJvRichEdit.text) <> 0 then
                              begin
                                Start := Pos('<BODY>', BodyJvRichEdit.text)+7;
                                Ende := Pos('</BODY>', BodyJvRichEdit.text);
                                Body := Ende - Start;
                                bodytext := copy(BodyJvRichEdit.text, Pos('<BODY>', BodyJvRichEdit.Text)+6, Body+1);
                                ArtikelAdsTable.FieldByName('Infotextbody').AsString := bodytext;
                              end;
                              if Pos('<body>', BodyJvRichEdit.text) <> 0 then
                              begin
                                Start := Pos('<body>', BodyJvRichEdit.text)+7;
                                Ende := Pos('</body>', BodyJvRichEdit.text);
                                Body := Ende - Start;
                                bodytext := copy(BodyJvRichEdit.text, Pos('<body>', BodyJvRichEdit.text)+6, Body+1);
                                ArtikelAdsTable.FieldByName('Infotextbody').AsString := bodytext;
                              end;
                            end
...
Ist es nun verständlicher!?

P.S: Ich weiß man kann es sauberer lösen. Ich bin auch kein Crack, aber es erfüllt "eigentlich" seinen Zweck!

ConnorMcLeod 5. Apr 2011 16:18

AW: An alle Programmierhengste: XML lesen
 
Servus golffahrer,

zeig uns bitte mal das XML von dem Datensatz, bei dem es kracht.

lg W.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz