Re: Tags aus OSM Datei vermischen
Geschrieben von Netzwolf (Gast) am 26. Februar 2013 16:01:11: [flux]
Als Antwort auf:
Tags aus OSM Datei vermischen
geschrieben von
unixasket
(Gast)
am
26. Februar 2013 11:32:
Nahmd,
unixasket wrote:
mit dem ich also aus:
<tag␣k="ele"␣v="972"/> <tag␣k="name"␣v="Nußhardt"/>einfach:
<tag␣k="name"␣v="Nußhardt,␣972M"/>machen kann?
Wenn das Format Deiner Daten, insbesondere die Verwendung des Doppelquotes (") sich nicht ändert und Du ein Element für eine Pipeline braucht, kannst Du ein winziges Perl-Script benutzen:
#!/usr/bin/perl use␣strict; my␣%T; while␣(<>)␣{ #----------------------------------------------------------- #␣␣␣␣␣␣␣Speichere␣Tag. #-----------------------------------------------------------
if␣(m#^\s*<tag\s+k="([^"]*)"\s+v="([^"]*)"\s*/>\s*$#)␣{ $T{$1}=$2; next; }
#----------------------------------------------------------- #␣␣␣␣␣␣␣Gib␣tagfreie␣Zeile␣aus,␣wenn␣keine␣Tags␣gespeichert #-----------------------------------------------------------
if␣(!%T)␣{ print␣$_; next; }
#----------------------------------------------------------- #␣␣␣␣␣␣␣Manipuliere␣die␣Tags #-----------------------------------------------------------
if␣($T{'name'}␣&&␣$T{'ele'})␣{
$T{'name'}␣=␣$T{'name'}␣.␣",␣"␣.␣int($T{'ele'})␣.␣'m'; }
#----------------------------------------------------------- #␣␣␣␣␣␣␣Gib␣die␣gespeicherten␣und␣manipulierten␣Tags␣aus. #-----------------------------------------------------------
for␣my␣$key␣(sort␣keys␣%T)␣{ print␣"<tag␣k=\"$key\"␣v=\"$T{$key}\"/>\n"; } %T=();
#----------------------------------------------------------- #␣␣␣␣␣␣␣Gib␣die␣tagfreie␣Zeile␣aus. #-----------------------------------------------------------
print␣$_; } __END__
Das Teil ist strunzdumm und weiß nicht einmal, wie man XML schreibt. Aber es kann Tags manipulieren.
Gruß Wolf