AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte himXML (gesprochen himix ML)
Thema durchsuchen
Ansicht
Themen-Optionen

himXML (gesprochen himix ML)

Ein Thema von himitsu · begonnen am 12. Mär 2009 · letzter Beitrag vom 11. Nov 2020
Antwort Antwort
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.167 Beiträge
 
Delphi 10 Seattle Professional
 
#1

AW: himXML (gesprochen himix ML)

  Alt 20. Jul 2012, 17:22
Habe folgendes Problem:
Ich bekomme über einen Webservice XML-Daten geleifert. Eine Attribute enthält Datum im Format "2012-07-20T00-00-00.000" (als Beispiel). Ich lese diese Attribute in einen String, den ich dann direkt mit StrToDate in ein Datum unmwandelt kann. Normalerweise lässt sich der o.g. Beispielstring nicht direkt mit StrToDate in ein Datum umwandeln, weil es an sich kein akzeptables Datumsformat ist, aber in diesem Fall klappt es. Vermutlich erkennt der Autor ein Datum dahinter und wandelt es direkt um.

Sollte aber der Wert der Attribute ein ungültiges Datum enthalten, z.B. "0001-01-01T00-00-00.000", bekomme ich schon beim auslesen der Attribute in einen String die Fehlermeldung "Ungültiges Argument". Als Datum mag es vielleicht ungültig sein, aber als String sollte doch keine Probleme geben, oder?

Was mache ich falsch?

Geändert von romber (20. Jul 2012 um 23:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#2

AW: himXML (gesprochen himix ML)

  Alt 20. Jul 2012, 22:47
Wenn du einen Node über .Text (Variant) ausließt, dann wird erkannt, daß es sich um das Standard-XML-DateTime-Format handelt, welches entsprechend in einen TDateTime umgewandelt wird.
Beim Auslesen von .Text wird der enthaltene Wert an die Delphi-Typen/Formate angepaßt, damit spätere Umwandlungen (welche aktuell noch über die Standardfunktionen des Variants behandelt werden) korrekt arbeiten.
Man kann .Text (Variant) ja direkt an eine TDateTime-Variable, bzw. an einen solches Property oder einen Parameter übergeben, wenn ein derartig kodierter DateTime-String oder eine Fließkommazahl enthalten ist.

Verwende stattdessen .Text_S (String), wenn du den Wert ohne Umwandlung auslesen willst/mußt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.167 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: himXML (gesprochen himix ML)

  Alt 20. Jul 2012, 23:05
Bei einer Node ist klar. Es geht mir aber um eine Attribute. Soweit ich nichts übersehen habe, lässt sich eine Attribute nur über .Attribute[<name>] bzw. .Attributes.Value[<index>] auslesen und in beiden Fällen ist Variant der Ausgabetyp.

Geändert von romber (21. Jul 2012 um 00:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#4

AW: himXML (gesprochen himix ML)

  Alt 21. Jul 2012, 00:29
Ups, da sieht es grade wirklich etws blöde aus.

Welche Delphi-Version setzt du denn ein?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.167 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: himXML (gesprochen himix ML)

  Alt 21. Jul 2012, 00:34
Nee, blöd ist himXML auf jeden Fall nicht

Ich habe Delphi 2010 und XE2
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#6

AW: himXML (gesprochen himix ML)

  Alt 21. Jul 2012, 10:41
Wenn ich mich nicht vertippt hab, dann haben die Attributes nun auch ein Value_S-Property hne Typkonvertierung.

Und war ja klar, vor ein paar Minuten ging mein Serverchen ins Wartungswochenende und für die DP ist das Dateichen natürlich ein kleines Bissl zu groß.

v0.9b 2012-07-21 + v0.99e 2012-07-21 + others (eingebundene Demos unverändert, aber die Zips von XMLLib und NativeXml wurden aktualisiert)
himXML_aktuell.7z
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (21. Jul 2012 um 10:43 Uhr)
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.167 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: himXML (gesprochen himix ML)

  Alt 21. Jul 2012, 14:47
@himitsu

Vielen Dank für die schnelle Lösung!
Welchen Unterschied ist zwischen v0.99e und v0.9b?
  Mit Zitat antworten Zitat
Antwort Antwort


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:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
xml - MSXML alternative - Stack Overflow This thread Refback 28. Jun 2011 15:34

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.
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