Merge HAFAS XML fix from DBF

This commit is contained in:
Daniel Friesel 2020-10-25 16:35:43 +01:00
parent 76aa233b95
commit c70280a935

View file

@ -185,12 +185,17 @@ sub get_xml_p {
messages => [], messages => [],
}; };
# <SDay text="... &gt; ..."> is invalid HTML, but present in # <SDay text="... &gt; ..."> is invalid XML, but present in
# regardless. As it is the last tag, we just throw it away. # regardless. As it is the last tag, we just throw it away.
$body =~ s{<SDay [^>]*/>}{}s; $body =~ s{<SDay [^>]*/>}{}s;
# More fixes for invalid XML # More fixes for invalid XML
$body =~ s{P&R}{P&amp;R}; $body =~ s{P&R}{P&amp;R};
# <Attribute [...] text="[...] "[...]"" /> is invalid XML.
# Work around it.
$body
=~ s{<Attribute([^>]+)text="([^"]*)"([^"=]*)""}{<Attribute$1text="$2&#042;$3&#042;"}s;
eval { $tree = XML::LibXML->load_xml( string => $body ) }; eval { $tree = XML::LibXML->load_xml( string => $body ) };
if ($@) { if ($@) {
$self->{log}->info("load_xml($url): $@"); $self->{log}->info("load_xml($url): $@");