AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi XML appendchild/ Insertbefore
Thema durchsuchen
Ansicht
Themen-Optionen

XML appendchild/ Insertbefore

Ein Thema von geldis · begonnen am 11. Aug 2022 · letzter Beitrag vom 12. Aug 2022
Antwort Antwort
geldis

Registriert seit: 19. Jan 2022
42 Beiträge
 
#1

AW: XML appendchild/ Insertbefore

  Alt 11. Aug 2022, 14:03
Also:
Code:
      <Item>
       <GUID>1010296</GUID>
-->   <Icon>Sonstwas</Icon>
       <Name>Stahlwerk</Name>
      </Item>
Das Stück hier zeigt wo der neue Knoten Icon hin soll.

Wenn ich nun <Item> als Knoten via SelectSingleNode auswähle erhalte ich als Ausgabe jetzt den richtigen Knoten:

Code:
      <Item>
       <GUID>1010296</GUID>
       <Name>Stahlwerk</Name>
      </Item>
mit ....insertBefore(NeuerKnoten,ItemKnoten) bekomme ich 'Die Stelle zum Einfügen muss ein untergeordneterKnoten des Knotens sein, unter dem eingefügt werden soll.'

Das raff ich nicht.

Code:
<?xml version="1.0" encoding="UTF-8"?>
<AssetList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Asset>
   <Template>ItemEffectTargetPool</Template>
      <Values>
         <Standard>
            <GUID>24053</GUID>
            <Name>alle Gebäude der Schwerindustrie</Name>
         </Standard>
      <ItemEffectTargetPool>
         <EffectTargetGUIDs>
            <Item>
               <GUID>1010296</GUID>
               davor --->         <Name>Stahlwerk</Name>
            </Item>
            <Item>
               <GUID>1010297</GUID>
               <Name>Hochofen</Name>
            </Item>
         </EffectTargetGUIDs>
      </ItemEffectTargetPool>
      </Values>
   </Asset>
</AssetList>
Was muss ich machen verdammt.

geldis

Geändert von geldis (11. Aug 2022 um 14:08 Uhr)
  Mit Zitat antworten Zitat
shebang

Registriert seit: 7. Feb 2020
144 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: XML appendchild/ Insertbefore

  Alt 11. Aug 2022, 14:32
Wenn ich nun <Item> als Knoten via SelectSingleNode auswähle erhalte ich als Ausgabe jetzt den richtigen Knoten:
Code:
      <Item>
       <GUID>1010296</GUID>
       <Name>Stahlwerk</Name>
      </Item>
mit ....insertBefore(NeuerKnoten,ItemKnoten) bekomme ich 'Die Stelle zum Einfügen muss ein untergeordneterKnoten des Knotens sein, unter dem eingefügt werden soll.'

Das raff ich nicht.
Wenn du den neuen Knoten vor <Name> einfügen möchtest, dann musst du diesen im insertBefore natürlich auch angeben und nicht <Item>.
Warum ist die Reihenfolge überhaupt wichtig? Die Knoten werden doch hoffentlich über ihren Namen angesprochen und nicht über ihre Position.
  Mit Zitat antworten Zitat
geldis

Registriert seit: 19. Jan 2022
42 Beiträge
 
#3

AW: XML appendchild/ Insertbefore

  Alt 11. Aug 2022, 14:51
Wird über den Namen angesprochen, sicher, kann auch gerne vor GUID sitzen, ich kriege es nicht hin.


geldis
  Mit Zitat antworten Zitat
shebang

Registriert seit: 7. Feb 2020
144 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: XML appendchild/ Insertbefore

  Alt 12. Aug 2022, 08:05
Ein ItemKnoten.appendChild(NeuerKnoten) würde den neuen Knoten immer innerhalb von <Item> nach <Name> einfügen.
  Mit Zitat antworten Zitat
ManBu

Registriert seit: 4. Mär 2008
10 Beiträge
 
#5

AW: XML appendchild/ Insertbefore

  Alt 12. Aug 2022, 10:50
Wenn du es an eine bestimmte Stelle einfügen musst:

Code:
  ItemListe := CoDOMDocument.create;
  ItemListe.Load(ItemFile);
  ItemListeRootNode := ItemListe.DocumentElement;
  ItemListeSingleNode := ItemListeRootNode.SelectSingleNode('//Asset[GUID="24053"]');
  NewItemNode := ItemListe.CreateElement('Icon');
  NewCreatedNode := ItemListeSingleNode.insertBefore(NewItemNode, ItemListeSingleNode.childNodes.item(1));
Siehe dazu MSDN https://docs.microsoft.com/en-us/pre...54519(v=vs.85)
  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 20:40 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