2010-12-15 2 views
0

weiß jemand hier, wie HTML-Tags mit Perl zu entfernen, wenn Sie XML verwenden :: Einfache Ausgabe?Wie streichen HTML-Tags mit IDs in Perl?

Hier ist der Code, den ich habe;

#!/usr/bin/perl 
use XML::Simple; 
$xml = new XML::Simple; 
$data = $xml->XMLin('library.xml', ForceArray => 1, KeyAttr => {},); 

foreach my $library (@{$data->{library}}) 
{ 
    foreach my $shelf (@{$library->{shelf}}) 
    { 
    print $xml->XMLout($shelf, RootName => "book", NoSort => 1); 
    } 
} 

Dieser Code wird so etwas ausgeben;

<library> 
    <book shelf="12345">Book Title Here</book> 
</library> 

Wie entferne ich Tags und behalte den Titel. Vielleicht gibt es einen besseren Weg, dies zu tun, lass es mich wissen.

Jede Hilfe wäre willkommen :-) Danke.

+1

Das Thema und der erste Satz sind inkongruent die Code- und Beispieldaten. Bitte beheben Sie dies, es ist ein wenig unklar, was Sie eigentlich wollen. – daxim

+0

1) Ist das XML oder HTML-Tags? 2) Gibt es eine bestimmte Struktur für das XML? – DVK

+0

Geben Sie außerdem eine Beispieleingabe für die vorgeschlagene Ausgabe an. – DVK

Antwort

1

Wenn Sie nichts in XML :: Simple für Ihre Zwecke finden, warum nicht einfach die Tags entfernen?

local $_ = $xml->XMLout($shelf, RootName => "book", NoSort => 1); 
    s#<.+?>#\n#sg; 
    s#\s*\n+\s*#\n#sg; 
    print;