Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   wie komm ich nur an die Werte ? (https://www.delphipraxis.net/195517-wie-komm-ich-nur-die-werte.html)

TiGü 8. Mär 2018 08:24

AW: wie komm ich nur an die Werte ?
 
Zitat:

Zitat von Gege (Beitrag 1395501)
@himitsu googeln tu ich immer vorher .. nur wenn ich nach Stunden keine Lösung finde
frag ich mal in ein Forum nach .. natürlich nicht um nur auf Google hingewiesen zu werden
nur mal Rande mit erwähnt..

Es ist schon irgendwo ziemlich daneben, nachzufragen was XPath ist, OBWOHL im Beitrag zuvor LINKS dazu eingearbeitet wurden und dann hinterher sich zu mokieren, dass man angeblich gegängelt wird, weil man nicht gegoogelt hat. Was ja so nicht in diesem Thread stattfand.

Gege 8. Mär 2018 09:53

AW: wie komm ich nur an die Werte ?
 
Hallo TiGü

hast Du mal die Links angeklickt ?
klar bei wiki steht das es eine Sprache ist und dann findet man viele links mit Usern die auch Probleme haben im Bezug auf ganz andere Dinge
und man kann wieder viele Stunden vertreiben um trotzdem nicht ans Ziel zu kommen.
Ich war auch davon ausgegangen das so ein Forum nicht nur ein Ersatz und Hilfestellung zu Google sein soll.
War kein mokieren sondern nur ein Hinweis das es nicht immer die beste Antwort sein könnte.
Er hat mir mit einen Hinweis ja auch weiter geholfen.
mfg
Gege

himitsu 8. Mär 2018 09:58

AW: wie komm ich nur an die Werte ?
 
Die Syntax vom XPath ist recht einfach und überall gleich,
aber je nach Version und verwendeter Schnittstelle (Objektkapselung im Delphi oder eine der verschiedenen Interfaces) unterscheiden sich die Namen Methoden/Property und wo sie sich jeweils verstecken, das hab ich nunmal nicht alles im Kopf.
Darum auch der Link mit (hoffentlich" passenden Suchworten, damit sich jemand das für ihn passende Interface raussuchen kann.

Gege 8. Mär 2018 10:17

AW: wie komm ich nur an die Werte ?
 
Hi himitsu,

ich hab zwar eine Lösung aber im Prinzip bin ich immer noch nicht schlauer was die Verwendung von XPath in Delphi angeht
wie beschrieben bekomme ich bei selectSingleNode ja schon Fehler .. da muss ja irgendwo vorher etwas anders eingestellt werden ..
und ja ich habe mir über die links alles möglich durchgelesen aber gerade den Part eben nicht finden können.
Nur auch solche Beispiele wie von Dir deswegen dachte ich es gibt evtl. eine andere Komponente als die IXMLdocument

Aber ich kann mit der jetzigen Lösung leben ..
in diesen speziellen Fall kann ich es sogar verkürzen und brauch die
Procedure nicht da die Quell XML-Datei immer die gleiche ist
deswegen brauch ich nicht suchen sondern kann per Index
immer gleiche zugreifen.

Gege 8. Mär 2018 11:58

AW: wie komm ich nur an die Werte ?
 
Zitat:

Zitat von Gege (Beitrag 1395368)
ich hab ein XML Dokument

Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<Document>
  <Doctype>PDF</Doctype>
  <Index>
   <Var Name="*FIRMA" Value="F61" />
   <Var Name="*BELEGART" Value="VK" />
   <Var Name="*BELEGKREIS" Value="LF" />
   <Var Name="*BELEGNR" Value="0845578" />
   <Var Name="*BELEGDATUM" Value="2018-02-22" />
   <Var Name="*KONTOTYP" Value="D" />
   <Var Name="*ADRESSNR" Value="71362" />
  </Index>
</Document>
mein Ziel ist es einen Wert bei

<Var Name="*ADRESSNR" Value="71362" />

in zum Beispiel
<Var Name="*ADRESSNR" Value="08157" />

zu ändern ...
Code:

 ( xmldoc:IXMLNode; )

xmldoc.ChildNodes.Nodes['Index'].ChildNodes['Var'].Attributes['Value'].NodeValue .. ??
funktioniert natürlich nicht .. hmm wie greif ich denn nur darauf zu


die genaue Antwort ist

Code:
xmldocument1.ChildNodes['Document'].ChildNodes.Nodes['Index'].ChildNodes[6].Attributes['Value']:='08157';
falls es auch jemand braucht

viele Grüße
Gege

sko1 8. Mär 2018 13:42

AW: wie komm ich nur an die Werte ?
 
Delphi-Quellcode:
xmldocument1.ChildNodes['Document'].ChildNodes.Nodes['Index'].ChildNodes[6].Attributes['Value']:='08157';


Falls es jemand braucht sollte dann bis hinten konsequent "benamst" werden!

Wer garantiert dass übermorgen noch ChildNodes[6] die Adressnummer ist?
Wäre da ebenfalls die Angabe des Namens '*ADRESSNR' sinnvoller?

Ciao
Stefan

Gege 8. Mär 2018 14:02

AW: wie komm ich nur an die Werte ?
 
Zitat:

Wer garantiert dass übermorgen noch ChildNodes[6] die Adressnummer ist?
weil ich diese xml immer selber als Vorlage öffne
und jeweils geändert nur unter anderen Namen abspeichere..
Hintergrund ist ich bekomme PDF Files in denen im Namen die '*ADRESSNR' steht und ich unter gleichen Namen die XML Datei dazu erzeugen muss
(Für ein Archivsystem)
Sicher die einfachste Methode ist die XML immer neu einfach zusammenzubauen
aber da es diese Funktionen nun mal gibt wollte ich sie auch nutzen

himitsu 8. Mär 2018 14:06

AW: wie komm ich nur an die Werte ?
 
Zitat:

Zitat von sko1 (Beitrag 1395569)
Wäre da ebenfalls die Angabe des Namens '*ADRESSNR' sinnvoller?

Genau das ist eine der Stärken von XPath.

Ähnlich wie das Dateipfad im Explorer, aber mit mehr Möglichkeiten zum Suchen.
Delphi-Quellcode:
'Document/Index/Var[6]/attribute::Value'
der 7. "VAR"-Knoten, entsprechend dem
Delphi-Quellcode:
xmldocument1.ChildNodes['Document'].ChildNodes.Nodes['Index'].ChildNodes[6].Attributes['Value']

Delphi-Quellcode:
'Document/Index/Var[@Name="*ADRESSNR"]/attribute::Value'
der "VAR"-Knoten mit einem Attribut "Name"="*ADRESSNR"

Gege 8. Mär 2018 14:16

AW: wie komm ich nur an die Werte ?
 
das mag ja richtig sein ..
wenn mir aber NIEMAND sagen kann wie ich das mit XPath machen kann nehm ich die Variante die mir wenigstens jemand sagt und die auch funktioniert


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 Uhr.
Seite 2 von 2     12   

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