Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]607[/thread]

XML: leeren XML - Tag



<< >> 8 Einträge, 1 Seite
Schmidtl
 2005-11-08 12:28
#5978 #5978
User since
2005-09-27
14 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich bearbeite mit XML::Simple eine XML - Datei. Beim Löschen lese ich halt die Struktur aus und mache dann:

Code: (dl )
delete($struct->{SWITCH}->[$snum]);


Klappt alles, nur leider bleibt am Ende <SWITCH /> stehen. Das muss noch weg. Gibts da noch eine Zusatzfunktionen oder einen zusätzlichen Parameter? Oder kann man das nur über die Dateifunktionen entfernen, was ja recht unelegant wäre!?

Danke.

MfG
Relais
 2005-11-08 13:30
#5979 #5979
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Warum löschst Du einen Array-Slot, wenn Du doch einen Hash-entry löschen willst?
Vergleiche:
Code: (dl )
perl -MData::Dumper -e '$struct->{SWITCH}->[0] = 1; delete $struct->{SWITCH}->[0]; print Dumper $struct'

und
Code: (dl )
perl -MData::Dumper -e '$struct->{SWITCH}->[0] = 1; delete $struct->{SWITCH}; print Dumper $struct'
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Schmidtl
 2005-11-08 13:50
#5980 #5980
User since
2005-09-27
14 Artikel
BenutzerIn
[default_avatar]
Hallo,

es gibt bei mir mehrere SWITCH. Also:
Code: (dl )
1
2
3
4
5
6
<SWITCH content="bla" name "a">
......
</SWITCH>
<SWITCH content="qwertz" name "b">
......
</SWITCH>

Und jetzt lösche ich den SWITCH "a". Also
Code: (dl )
delete $struct->{SWITCH}->[0]; 

Ansonsten lösche ich doch alle SWITCH und keinen bestimmten.

Sorry, war vielleicht etwas blöd von mir beschrieben.

MfG
Dubu
 2005-11-08 16:47
#5981 #5981
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Vielleicht liegt es daran, dass man mit delete() Arrayelemente (ausser am Ende) gar nicht loescht, sondern nur mit undef belegt. Um ein Element wirklich aus einem Array zu entfernen, nimmt man splice().
Schmidtl
 2005-11-08 17:40
#5982 #5982
User since
2005-09-27
14 Artikel
BenutzerIn
[default_avatar]
Gut danke, probiere es direkt aus.
Schmidtl
 2005-11-11 09:26
#5983 #5983
User since
2005-09-27
14 Artikel
BenutzerIn
[default_avatar]
Hallo,

wenn ich es mit undef mache, bleibt trotzdem noch <SWITCH/> in der Datei enthalten. Mit splice() bekomme ich Probleme, da Perl der Überzeugung ist, dass meine Datenstruktur kein Array ist. Da dachte ich komme mit splice(@{$struct->......},0) weiter aber das geht auch nicht. Wo liegt noch das Problem?

Vielen Dank!

MfG
Relais
 2005-11-11 10:09
#5984 #5984
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie äußert sich[quote=Schmidtl,11.11.2005, 08:26]aber das geht auch nicht.[/quote]?
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
Dubu
 2005-11-11 10:19
#5985 #5985
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=Schmidtl,11.11.2005, 08:26]Da dachte ich komme mit splice(@{$struct->......},0) weiter aber das geht auch nicht. Wo liegt noch das Problem?[/quote]
Das entfernt alle Elemente, angefangen mit dem ersten (0), aus dem Array.
perldoc -f splice.
<< >> 8 Einträge, 1 Seite



View all threads created 2005-11-08 12:28.