![]() |
doppeltes Tag
Ich habe folgende XML:
SQL-Code:
(Bitte SQL ignorieren) Ich möchte jedes Tag füllen.
<?xml version="1.0" encoding="utf-8"?>
<Products> <Product> <ProductIdent> <ProductInsert>1</ProductInsert> <UserProductID>1234ABSDE</UserProductID> <ProductID>0</ProductID> <AnrIdent>0</AnrIdent> <EANIdent>EE</EANIdent> </ProductIdent> </Product> <Product> <ProductIdent> <ProductInsert>1</ProductInsert> <UserProductID>12345ABSDE</UserProductID> <ProductID>0</ProductID> <AnrIdent>0</AnrIdent> <EANIdent>MYEAN</EANIdent> </ProductIdent> <Anr>12</Anr> <EAN>132456</EAN> <Name>test</Name> </Product> </Products> </Request> Allerdings kommt <Product> doppelt vor...
Delphi-Quellcode:
der oben angegebene Code schreibt leider in das erste Tag? Wie komme ich auf das zeweite?
XMLDocument.childNodes.nodes['Products'].childNodes.nodes['Product'].childNodes.nodes['ProductIdent'].childNodes.nodes['Anr'].nodevalue := 1234567890123;
|
Re: doppeltes Tag
bei Node kannst du den Index oder Namen angeben. Anstelle von 'Product' kannst du also auch die Indexe setzen.
|
Re: doppeltes Tag
habe ich mir auch überlegt, aber sobald ein Feld hinzugefügt wird ist das ganze nicht mehr verwertbar... :?
da dies ohne Vorwarnung vorkommen wird.... :wall: |
Re: doppeltes Tag
Hi,
ich hab eben mal ein Projekt von mir abgewandelt. Ich hoffe, es hilft (ungetestet!)
Delphi-Quellcode:
Edit: Variablennamen geändert...
var
products: ixmlnodelist; product: ixmlnode; begin products := xmldoc.ChildNodes.FindNode('products').ChildNodes; for i := 0 to products.Count-1 do begin product := products.Get(i); if lowercase(product.NodeName) = 'product' then //<-- Das if kannst du weglassen, wenn es eh nur <product>-Tags gibt begin with product do begin ... end; end; end; end; |
Re: doppeltes Tag
ok, interessant. Ich gehe also im Grunde genommen die Indexe durch bis ich das zweite product finde, schränke meine Suche aber auf das Parent ab. Alles klar :thumb:
Es sollte verboten sein Tags gleich zu benennen. Zu mindestens die auf der gleichen ebene.... :evil: |
Re: doppeltes Tag
Es sollte verboten sein Tags gleich zu benennen. Zu mindestens die auf der gleichen ebene.... :evil:[/quote]
nope. das ist usus. mit XPATH oder so kann man auch alle nodes mit gleichem namen auf einer ebene selektieren. da hab ich mich aber noch gar nicht damit beschäftigt... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:22 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