AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML Node.Text liefert keinen Wert

Ein Thema von sh17 · begonnen am 26. Apr 2018 · letzter Beitrag vom 11. Jun 2018
Antwort Antwort
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.601 Beiträge
 
Delphi 11 Alexandria
 
#1

XML Node.Text liefert keinen Wert

  Alt 26. Apr 2018, 09:04
Ich dachte ich wollte es mal "richtig" machen und das XML-Binding von Delphi verwenden.

Nun hab ich das Problem nach dem Einlesen einer XML-Datei, das ich auf die Inhalte von Knoten nicht über ihren Namen zugreifen kann, also die Inhalte sind leer.

Ich fang mal einfach an:

Code:
ShowMessage(xml.ChildNodes['HeaderExchangedDocument'].ChildNodes['ID'].Text);
So hätte ich es gern, allerdings ist Text leer (so arbeitet auch das Binding)

wenn ich mit einer Schleife über die Kinder von HeaderExchangedDocument gehe
klappt es

Code:
for l := 0 to xml.ChildNodes['HeaderExchangedDocument'].ChildNodes.Count-1 do
      if xml.ChildNodes['HeaderExchangedDocument'].ChildNodes[l].IsTextElement then
      begin
        ShowMessage(xml.ChildNodes['HeaderExchangedDocument'].ChildNodes[l].Text);
        ShowMessage(xml.ChildNodes['HeaderExchangedDocument'].ChildNodes[l].NodeName);
end;
mach ich was falsch?

hier mal der Anfang der XML-Datei

Code:
<?xml version="1.0" encoding="UTF-8"?>
<rsm:CrossIndustryDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rsm="urn:ferd:CrossIndustryDocument:invoice:1p0" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:15">
   <rsm:HeaderExchangedDocument>
      <ram:ID>RK21012345</ram:ID>
      ....
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.601 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: XML Node.Text liefert keinen Wert

  Alt 26. Apr 2018, 09:29
ok, scheint am Namespace zu liegen, nur wie geht es richtig?
Sven Harazim
--
  Mit Zitat antworten Zitat
michaelg

Registriert seit: 20. Apr 2008
87 Beiträge
 
#3

AW: XML Node.Text liefert keinen Wert

  Alt 2. Mai 2018, 12:27
Hallo Sven,

ich sitze gerade am selben Thema mit ZUGFeRD. Ich wollte allerdings erstmal die ZUGfERD-Invoice.xml für Rechnungsausgänge erstellen. Das eingelese Schema über XML-Datenanbindung variiert etwas von dem, was die Beispieldateien hergeben. So sind in den Beispieldateien immer die Prefixe xmlns, rsm, ram, udt,... mit drin. Erzeugt man eine Datei mit der Schemaanbindung bekomme ich die nicht. Weiß auch nicht, was man wie einstellen muss, damit die auch geschrieben werden. Das wäre meine Frage, und natürlich, ob das zwingend notwendig ist, um eine gültige Datei zu bekommen.

Vielleicht ist meine Frage gleichzeitig Deine Antwort, Du hast 'ID' abgefragt, vielleicht musst Du das Prefix mitnehmen und "ram:ID" abfragen, damit Du das Node bekommst.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: XML Node.Text liefert keinen Wert

  Alt 2. Mai 2018, 12:39
Es gibt auch noch

xml.ChildNodes.FindNode(<name>, <namespace>)

Genau dein Problem hatte ich nämlich erst letzte Woche
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.601 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: XML Node.Text liefert keinen Wert

  Alt 2. Mai 2018, 17:09
schon klar mit dem Parameter bei FindNode. Nur so funktioniert xml.ChildNodes['HeaderExchangedDocument'].ChildNodes['ID'].Text nicht.

Ich werfe das komplette Bindung weg und mache nun alles selbst. Dauert etwas

Das ganze ist dann übrigens unter

https://github.com/LandrixSoftware/ZUGFeRD-for-Delphi

zu finden. Ich werde die Quellen immer aktuallisieren.
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: XML Node.Text liefert keinen Wert

  Alt 2. Mai 2018, 18:04
schon klar mit dem Parameter bei FindNode. Nur so funktioniert xml.ChildNodes['HeaderExchangedDocument'].ChildNodes['ID'].Text nicht.
Hä wieso das nicht?
xml.ChildNodes.FindNode('HeaderExchangedDocument', 'rsm').ChildNodes.FindNode('ID', 'ram').Text
müsste doch ohne Probleme gehen oder nicht?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  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:

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