diff options
Diffstat (limited to 'lib/Travelynx/Helper')
-rw-r--r-- | lib/Travelynx/Helper/HAFAS.pm | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/Travelynx/Helper/HAFAS.pm b/lib/Travelynx/Helper/HAFAS.pm index 5253a4e..6aefcf1 100644 --- a/lib/Travelynx/Helper/HAFAS.pm +++ b/lib/Travelynx/Helper/HAFAS.pm @@ -185,12 +185,17 @@ sub get_xml_p { messages => [], }; - # <SDay text="... > ..."> is invalid HTML, but present in + # <SDay text="... > ..."> is invalid XML, but present in # regardless. As it is the last tag, we just throw it away. $body =~ s{<SDay [^>]*/>}{}s; # More fixes for invalid XML $body =~ s{P&R}{P&R}; + + # <Attribute [...] text="[...] "[...]"" /> is invalid XML. + # Work around it. + $body + =~ s{<Attribute([^>]+)text="([^"]*)"([^"=]*)""}{<Attribute$1text="$2*$3*"}s; eval { $tree = XML::LibXML->load_xml( string => $body ) }; if ($@) { $self->{log}->info("load_xml($url): $@"); |