Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Namespace error when parsing with XML::LibXML

by mathieu (Novice)
on Oct 06, 2010 at 10:19 UTC ( #863747=perlquestion: print w/ replies, xml ) Need Help??
mathieu has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks,

I'm not able to parse the following XML file with the following perl statement. It's for a customer, the file cannot be changed and I also need to use XML::LibXML (v1.70), I've tested different things but appart from deleting the ns declarations I'm at lost.

I would prefer not having to change the customer provided file for any pre-treatment.

Thanks for any input on how I can avoid the errors.

Mat

Perl code :

use strict; use XML::LibXML; my $parser = new XML::LibXML(); my $doc = $parser->parse_file('namespace.xml'); my $ra_node = $doc->find('/Catalogue/Segments/Segments[@Name="Products +"]'); print "NB NODE ".scalar(@{ $ra_node })."\n";

Error returned :

namespace.xml:2: namespace error : xmlns: 'http://www.exchangefortrave +l.org/xft/current http://www.exchangefortravel.org/xft/current/xft.xs +d' is not a valid URI efortravel.org/xft/current http://www.exchangefortravel.org/xft/curren +t/xft.xsd" + ^ namespace.xml:2: namespace error : xmlns:h: 'http://www.exchangefortra +vel.org/xft/current http://www.exchangefortravel.org/xft/current/xft. +xsd' is not a valid URI efortravel.org/xft/current http://www.exchangefortravel.org/xft/curren +t/xft.xsd" + ^ namespace.xml:2: namespace error : xmlns:xi: 'http://www.exchangefortr +avel.org/xft/current http://www.exchangefortravel.org/xft/current/xft +.xsd' is not a valid URI efortravel.org/xft/current http://www.exchangefortravel.org/xft/curren +t/xft.xsd" + ^ namespace.xml:2: namespace error : xmlns:xsi: 'http://www.exchangefort +ravel.org/xft/current http://www.exchangefortravel.org/xft/current/xf +t.xsd' is not a valid URI efortravel.org/xft/current http://www.exchangefortravel.org/xft/curren +t/xft.xsd" + ^

XML File :

<?xml version='1.0' encoding='UTF-8'?> <Catalogue xmlns="http://www.exchangefortravel.org/xft/current http:// +www.exchangefortravel.org/xft/current/xft.xsd" xmlns:h="http://www.ex +changefortravel.org/xft/current http://www.exchangefortravel.org/xft/ +current/xft.xsd" xmlns:xi="http://www.exchangefortravel.org/xft/curre +nt http://www.exchangefortravel.org/xft/current/xft.xsd" xmlns:xsi="h +ttp://www.exchangefortravel.org/xft/current http://www.exchangefortra +vel.org/xft/current/xft.xsd" Implementation="2.0.7" xsi:schemaLocatio +n="http://www.exchangefortravel.org/xft/current http://www.exchangefo +rtravel.org/xft/current/xft.xsd"> <Style Direction="Out"> <Languages> <Language Code="FR"/> </Languages> </Style> <Actives> <Active Begin="2009-07-08" End="2099-12-31" Role="Validity"/> </Actives> <Keywords/> <Vendors> <Vendor Code="SITE" Default="true" Licence="XXXXXX" Owner="SITE"> <Active Role="Booking"> <SellLocations> <SellLocation Name="B2C"> <URL Channel="Internet">www.site.fr</URL> </SellLocation> <SellLocation Name="Reservation"> <Telephone>0 11111</Telephone> </SellLocation> </SellLocations> </Active> <Descriptions> <Description Language="FR"> <Descriptions> <Description Role="Media"> <Description Role="Label">SITE, nouvelles rencontres !</ +Description> <Medias> <Media Role="Icon"> <URL>http://www.site.fr/images/site_logo.png</URL> </Media> </Medias> </Description> </Descriptions> </Description> </Descriptions> <Name>SITE</Name> <Companies> <Company Role="Headquarter"> <Name>SITE</Name> <Address> <Street>SITE</Street> <ZipCode>XXX</ZipCode> <City>MONTREUIL</City> <Country Code="FR">FRANCE</Country> </Address> <Telephones> <Telephone Type="Fixed">XXXXX</Telephone> </Telephones> <Emails> <Email/> </Emails> <LegalType> <Description/> <Capital Currency="EUR" Decimals="0" Value="000000000"/> </LegalType> <Identifications> <Identification Name="Naf" Value=""/> <Identification Name="Rcs" Value=""/> <Identification Name="Vat" Value=""/> <Identification Name="Licence" Value="XXXXXX"/> </Identifications> </Company> </Companies> </Vendor> </Vendors> <Segments> <Segments Name="Products" What="List"> <Segment Index="1" Is="Stay" xsi:type="SegmentProductType">Hôtel + City<Active Begin="2009-11-28" End="2010-11-01" Role="Validity"/><Co +de Owner="SITE" Role="Product" Value="ISRCIT"/><Keywords> <Keyword xsi:type="KeywordSegmentationStayType">Séjours</Key +word> </Keywords><Descriptions> <Description Role="Media"> <Medias> <Media Role="Image" Index="1"> <URL>http://www.site.fr/image/images/isrsjcit_6.jpg</U +RL> </Media> </Medias> </Description> <Description Role="Body"/> <Descriptions> <Description Index="1" Name="ISITEOS"> <Paragraph> <Title>Hôtel City</Title> <Text>A deux pas de la mer et au c&amp;oelig;ur des at +tractions de Tel Aviv, ambiance moderne et design pour cet hôtel à l& +apos;atmosphère de charme.</Text> </Paragraph> <Medias> <Media Role="Image" Index="1"> <URL>http://www.site.fr/image/images/isrsjcit_6.jpg< +/URL> </Media> <Media Role="Image" Index="2"> <URL>http://www.site.fr/image/images/isrsjmor_13.jpg +</URL> </Media> <Media Role="Image" Index="3"> <URL>http://www.site.fr/image/images/isrsjcit_1.jpg< +/URL> </Media> <Media Role="Image" Index="4"> <URL>http://www.site.fr/image/images/isrsjcit_7.jpg< +/URL> </Media> <Media Role="Image" Index="5"> <URL>http://www.site.fr/image/images/isrsjcit_2.jpg< +/URL> </Media> <Media Role="Image" Index="6"> <URL>http://www.site.fr/image/images/isrsjcit_9.jpg< +/URL> </Media> <Media Role="Image" Index="7"> <URL>http://www.site.fr/image/images/isrsjcit_5.jpg< +/URL> </Media> <Media Role="Image" Index="8"> <URL>http://www.site.fr/image/images/isrsjcit_4.jpg< +/URL> </Media> <Media Role="Image" Index="9"> <URL>http://www.site.fr/image/images/isrsjcit_3.jpg< +/URL> </Media> </Medias> </Description> <Description Index="2" Name="HEBERGEMENT"> <Paragraph> <Title>Accroche</Title> <Text>A deux pas de la mer et au c&amp;oelig;ur des at +tractions de Tel Aviv, ambiance moderne et design pour cet hôtel à l& +apos;atmosphère de charme.</Text> </Paragraph> </Description> <Description Index="3" Name="HEBERGEMENT"> <Paragraph> <Title>Situation</Title> <Text>&lt;span style=&quot;font-weight: bold;&quot;&gt +;A 200 m de la plage publique, et en plein centre ville &lt;/span&gt; +(quartier touristique et des affaires), dans la zone hôtelière de la +rue HaYarkon de Tel Aviv</Text> </Paragraph> </Description> <Description Index="4" Name="HEBERGEMENT"> <Paragraph> <Title>L&apos;hôtel</Title> <Text>A deux pas de la mer et au c&amp;oelig;ur des at +tractions de Tel Aviv, ambiance moderne et design pour cet hôtel à l& +apos;atmosphère de charme. &lt;br/&gt; 96 chambres. Parking , connexi +on internet Wi-Fi, blanchisserie.</Text> </Paragraph> </Description> <Description Index="5" Name="ISITEOS"> <Paragraph> <Title>Le prix comprend</Title> <Text>le vol France / Tel Aviv A/R, les transferts aér +oport/hôtel A/R, l&amp;#8217;hébergement 8 nuits ou 15 nuits avec pet +its déjeuners, l&amp;#8217;assurance de base, les taxes aériennes : 5 +8 &amp;euro; (soumises à modification), les frais de dossier</Text> </Paragraph> </Description> </Descriptions> </Descriptions><Segments What="Isiteormation"> <Segment xsi:type="SegmentAirType" Direction="Both"> <Segments What="List"/> </Segment> <Segment xsi:type="SegmentStayType"/> </Segments><In> <City Ref="C_"/> <Country Ref="ISR"/> </In></Segment> <Segment Index="2" Is="Stay" xsi:type="SegmentProductType">Steig +enberger Al Dau Beach Hôtel<Active Begin="2010-01-07" End="2010-11-30 +" Role="Validity"/><Code Owner="SITE" Role="Product" Value="EGYADS"/> +<Keywords> <Keyword xsi:type="KeywordSegmentationStayType">Séjours</Key +word> </Keywords><Descriptions> <Description Role="Media"> <Medias> <Media Role="Image" Index="1"> <URL>http://www.site.fr/image/images/egysjads_23.jpg</ +URL> </Media> </Medias> </Description> <Description Role="Body"/> <Descriptions> <Description Index="1" Name="ISITEOS"> <Paragraph> <Title>Steigenberger Al Dau Beach Hôtel</Title> <Text>Établissement récent de la chaîne hôtelière répu +tée Steigenberger. Situé dans un cadre naturel privilégié au bord de +la Mer Rouge, idéal pour les amoureux du farniente.</Text> </Paragraph> <Medias> <Media Role="Image" Index="1"> <URL>http://www.site.fr/image/images/egysjber_g3.jpg +</URL> </Media> <Media Role="Image" Index="2"> <URL>http://www.site.fr/image/images/egysjads_23.jpg +</URL> </Media> <Media Role="Image" Index="3"> <URL>http://www.site.fr/image/images/htl51057_previe +w.jpg</URL> </Media> <Media Role="Image" Index="4"> <URL>http://www.site.fr/image/images/htl52062_previe +w.jpg</URL> </Media> <Media Role="Image" Index="5"> <URL>http://www.site.fr/image/images/htl39748_previe +w.jpg</URL> </Media> <Media Role="Image" Index="6"> <URL>http://www.site.fr/image/images/htl52059_previe +w.jpg</URL> </Media> <Media Role="Image" Index="7"> <URL>http://www.site.fr/image/images/htl37039_previe +w.jpg</URL> </Media> <Media Role="Image" Index="8"> <URL>http://www.site.fr/image/images/egysjads_22.jpg +</URL> </Media> <Media Role="Image" Index="9"> <URL>http://www.site.fr/image/images/egysjads_26.jpg +</URL> </Media> <Media Role="Image" Index="10"> <URL>http://www.site.fr/image/images/egysjads_24.jpg +</URL> </Media> <Media Role="Image" Index="11"> <URL>http://www.site.fr/image/images/egysjads_21.jpg +</URL> </Media> <Media Role="Image" Index="12"> <URL>http://www.site.fr/image/images/egysjads_25.jpg +</URL> </Media> <Media Role="Image" Index="13"> <URL>http://www.site.fr/image/images/egysjads_20.jpg +</URL> </Media> </Medias> </Description> <Description Index="2" Name="HEBERGEMENT"> <Paragraph> <Title>Accroche</Title> <Text>Établissement récent de la chaîne hôtelière répu +tée Steigenberger. Situé dans un cadre naturel privilégié au bord de +la Mer Rouge, idéal pour les amoureux du farniente.</Text> </Paragraph> </Description> <Description Index="3" Name="HEBERGEMENT"> <Paragraph> <Title>Situation</Title> <Text>&lt;span style=&quot;font-weight: bold;&quot;&gt +;À 300 m de la plage privée, à 6 km de l&apos;aéroport et 5 km du cen +tre-ville. &lt;/span&gt; </Text> </Paragraph> </Description> <Description Index="4" Name="HEBERGEMENT"> <Paragraph> <Title>L&apos;hôtel</Title> <Text>Les services : Coffre-fort à la réception, coiff +eur, parking, service bagages, accès internet wi-fi, boutiques, servi +ce de blanchisserie, change, distributeur d&apos;espèces, service à l +&apos;étage 24 h/24.</Text> </Paragraph> </Description> <Description Index="5" Name="HEBERGEMENT"> <Paragraph> <Title>L&apos;hébergement</Title> <Text>Cet hôtel 5 étoiles possède 388 chambres et suit +es, toutes équipées de salle de bains avec baignoire, douche, toilett +es, sèche-cheveux, climatisation, chauffage, télévision satellite, ra +dio, téléphone, connexion Internet, mini-bar (boissons payantes), cof +fre-fort, balcon.</Text> </Paragraph> </Description> <Description Index="6" Name="ISITEOS"> <Paragraph> <Title>Le prix comprend</Title> <Text>Le vol Paris / Hurghada A/R, les transferts aéro +port/hôtel A/R, l&apos;hébergement 7 nuits ou 14 nuits en formule dem +i-pension, les frais de visa (pour les ressortissants européens titul +aires d&apos;un passeport valable au moins 6 mois après la date de re +tour), l&apos;assurance de base, les taxes aériennes : 70 &amp;euro; +(soumises à condition), les frais de dossier&lt;br/&gt;</Text> </Paragraph> </Description> </Descriptions> </Descriptions><Segments What="Isiteormation"> <Segment xsi:type="SegmentAirType" Direction="Both"> <Segments What="List"> <Segment xsi:type="SegmentAirType" Direction="Outbound"> <From Ref="C_PAR" xsi:type="CityType"/> <To Ref="C_HRG" xsi:type="CityType"/> </Segment> <Segment xsi:type="SegmentAirType" Direction="Outbound"> <From Ref="C_NTE" xsi:type="CityType"/> <To Ref="C_HRG" xsi:type="CityType"/> </Segment> <Segment xsi:type="SegmentAirType" Value="Inbound"> <From Ref="C_HRG" xsi:type="CityType"/> <To Ref="C_LYS" xsi:type="CityType"/> </Segment> <Segment xsi:type="SegmentAirType" Value="Inbound"> <From Ref="C_HRG" xsi:type="CityType"/> <To Ref="C_NTE" xsi:type="CityType"/> </Segment> <Segment xsi:type="SegmentAirType" Value="Inbound"> <From Ref="C_HRG" xsi:type="CityType"/> <To Ref="C_PAR" xsi:type="CityType"/> </Segment> <Segment xsi:type="SegmentAirType" Direction="Outbound"> <From Ref="C_LYS" xsi:type="CityType"/> <To Ref="C_HRG" xsi:type="CityType"/> </Segment> </Segments> </Segment> <Segment xsi:type="SegmentStayType"/> </Segments><In> <City Ref="C_HRG"/> <Country Ref="EGY"/> </In></Segment> <Segment Index="3" Is="Stay" xsi:type="SegmentProductType">Crois +ière Dream Maldives<Active Begin="2009-12-10" End="2010-11-07" Role=" +Validity"/><Code Owner="SITE" Role="Product" Value="MDVDRE"/><Keyword +s> <Keyword xsi:type="KeywordSegmentationStayType">Séjours</Key +word> </Keywords><Descriptions> <Description Role="Media"> <Medias> <Media Role="Image" Index="1"> <URL>http://www.site.fr/image/images/mdvctdre_m5.jpg</ +URL> </Media> </Medias> </Description> <Description Role="Body"/> <Descriptions> <Description Index="1" Name="ISITEOS"> <Paragraph> <Title>Croisière Dream Maldives</Title> <Text>Une croisière aux Maldives où vous naviguerez d& +apos;atoll en atoll et découvrirez de magnifiques fond marins.</Text> </Paragraph> <Medias> <Media Role="Image" Index="1"> <URL>http://www.site.fr/image/images/mdvctdre_m5.jpg +</URL> </Media> <Media Role="Image" Index="2"> <URL>http://www.site.fr/image/images/mdvctdre_m3.jpg +</URL> </Media> <Media Role="Image" Index="3"> <URL>http://www.site.fr/image/images/mdvctdre_m1.jpg +</URL> </Media> <Media Role="Image" Index="4"> <URL>http://www.site.fr/image/images/mdvctdre_m2.jpg +</URL> </Media> <Media Role="Image" Index="5"> <URL>http://www.site.fr/image/images/mdvctdre_m4.jpg +</URL> </Media> </Medias> </Description> <Description Index="2" Name="ISITEOS"> <Paragraph> <Title>Conditions de vente</Title> <Text>Prix en euros par personne 9 jours/7 nuits, à ce +rtaines dates en fonction des disponibilités, vol A/R, transferts et +hébergement compris.</Text> </Paragraph> </Description> <Description Index="3" Name="HEBERGEMENT"> <Paragraph> <Title>Accroche</Title> <Text>Une croisière aux Maldives où vous naviguerez d& +apos;atoll en atoll et découvrirez de magnifiques fond marins.</Text> </Paragraph> </Description> <Description Index="4" Name="HEBERGEMENT"> <Paragraph> <Title>L&apos;hébergement</Title> <Text>&lt;span style=&quot;font-weight: bold;&quot;&gt +;Itinéraire indicatif&amp;#8201;:&lt;/span&gt; &lt;br/&gt; &lt;br/&gt +; &lt;span style=&quot;font-weight: bold;&quot;&gt;1er Jour (mardi) : + Thilafushi (Atoll Malé Nord (Kaafu)-Banana Reef (Atoll Malé Nord)-Gu +lhi Island (Atoll Malé Sud).&lt;/span&gt; Embarquement port de Thilaf +ushi à 14h (transfert de 15 min depuis l&amp;#8217;aéroport internati +onal de Malé par bateau rapide). Navigation de 45 min pour rejoindre +Banana Reef (Atoll Malé Nord) : superbe site pour le snorkeling où vo +us pourrez en particulier voir de magnifiques raies mantas. Cap sur l +&apos;Atoll Malé Sud. Après 1h30 de navigation, mouillage devant Gulh +i Island. &lt;br/&gt; &lt;br/&gt; &lt;span style=&quot;font-weight: b +old;&quot;&gt;2e Jour (mercredi) : Gulhi Island-Sand Bar (Atoll Malé +Sud (Kaau)-Omadhoo Island (Atoll Ari Sud).&lt;/span&gt; Visite de l&a +mp;#8217;île et son paisible petit village de pêcheurs. Vous verrez a +ussi un petit chantier construisant les bateaux locaux. Déjeuner au m +ouillage à Sand Bar, magnifique banc de sable blanc fin comme du talc +. Après 1h30 de navigation c&amp;#8217;est un paradis qui s&amp;#8217 +;offre à vous : baignade, snorkeling, kayak de mer. Navigation de 3 h +eures vers l&amp;#8217;Atoll Ari. Mouillage devant Omadhoo Island. &l +t;br/&gt; &lt;br/&gt; &lt;span style=&quot;font-weight: bold;&quot;&g +t;3e Jour (jeudi) : Omadhoo Island-Meerufesiteushi (Atoll Ari Sud).&l +t;/span&gt; Visite de l&amp;#8217;île et de son village de pêcheurs a +ux belles maisons blanches et vertes agrémentées de jardins bien entr +etenus où poussent de superbes arbres du fruit à pain et des manguier +s. En 10min de marche, vous traverserez le village et rejoindrez à tr +avers une petite forêt ombragée une très belle plage de sable blanc. +Baignade, kayak de mer et snorkeling. Au retour prenez le pouls de la + vie locale en buvant thé, café ou boissons fraîches et en grignotant + de délicieux samossas au petit café face au port. Après déjeuner, 1h +30 de navigation pour Meerufesiteushi, un bijou, une des plus belles +îles des Maldives. À l&amp;#8217;abri d&amp;#8217;un petit lagon, une + vraie piscine naturelle bordant une plage paradisiaque. De beaux pal +miers dispensent une ombre protectrice bienvenue. Dîner barbecue sur +cette île déserte. &lt;br/&gt; &lt;br/&gt; &lt;span style=&quot;font- +weight: bold;&quot;&gt;4e Jour (vendredi) : Meerufesiteushi-Raiga Dhi +gghiri (Atoll Ari Sud).&lt;/span&gt; Matinée : baignade, kayak de mer +, snorkeling, farniente. Après déjeuner, navigation de 45 min vers Ra +iga Dhigghiri, île privée peuplée uniquement par 2 gardiens. Faites l +e tour, vous pourrez voir de beaux coquillages et d&amp;#8217;élégant +s oiseaux de mer. Baignade, kayak de mer, snorkeling etc&amp;#8230; M +ouillage pour la nuit. &lt;br/&gt; &lt;br/&gt; &lt;span style=&quot;f +ont-weight: bold;&quot;&gt;5e Jour (samedi) : Raiga Dhigghiri-Daghett +i (Atoll Ari Sud). &lt;/span&gt;Matinée farniente, baignade, kayak de + mer, snorkeling. Après le déjeuner, navigation de 2 heures vers Dagh +etti qui abrite un charmant village hors du temps. Dîner au mouillage +. &lt;br/&gt; &lt;br/&gt; &lt;span style=&quot;font-weight: bold;&quo +t;&gt;6e Jour (dimanche) : DaghettiGuraidhoo (Atoll Malé Sud).&lt;/sp +an&gt; Après le petit déjeuner, visite du village et de son musée mon +trant la vie locale au début du siècle dernier. Possibilité de shoppi +ng, nombreuses boutiques. Ne manquez pas de faire le tour d&amp;#8217 +;un superbe banian vieux de plusieurs centaines d&amp;#8217;années, f +ierté des habitants, avec ses dimensions impressionnantes. Navigation + de 3 heures après le déjeuner vers l&amp;#8217;Atoll Malé Sud et l&a +mp;#8217;île Guraidhoo. Dîner au mouillage. &lt;br/&gt; &lt;br/&gt; & +lt;span style=&quot;font-weight: bold;&quot;&gt;7e Jour (lundi) : Gur +aidhoo-Malé-Thilafushi. &lt;/span&gt;Déjeuner, baignade, snorkeling. +Possibilité de visiter cette île de pêcheurs. Après déjeuner, navigat +ion de 2 heures vers Malé et Thilafushi. 8e Jour (mardi) : débarqueme +nt entre 6h et 8h, transfert de 15 min pour l&amp;#8217;aéroport inte +rnational de Malé par bateau rapide.</Text> </Paragraph> </Description> <Description Index="5" Name="ISITEOS"> <Paragraph> <Title>A savoir</Title> <Text>&lt;span style=&quot;font-weight: bold;&quot;&gt +;Bon à savoir : &lt;/span&gt;l&amp;#8217;itinéraire est donné à titre + indicatif et est susceptible d&amp;#8217;être modifié. Les équipemen +ts plongée libre et kayak de mer sont inclus. Remise de 50% sur la ca +bine double pour les voyages de noces. &lt;br/&gt; &lt;br/&gt; &lt;sp +an style=&quot;font-weight: bold;&quot;&gt;Votre bateau :&lt;/span&gt +; un catamaran de 25 m avec 8 cabines doubles avec salle de bains pri +vative et équipé de tous les appareils de navigation récents (groupe +électrogène, dessalinisateur). L&amp;#8217;équipage est formé d&amp;# +8217;un capitaine, d&amp;#8217;un steward cuisinier et d&amp;#8217;un + marin.&lt;br/&gt; &lt;br/&gt; &lt;span style=&quot;font-weight: bold +;&quot;&gt;Loisirs : &lt;/span&gt;pêche au gros, snorkeling, kayak de + mer, télévision avec magnétoscope, radio cassette CD, enceintes exté +rieures, rendez-vous plongée avec les centres locaux.</Text> </Paragraph> </Description> <Description Index="6" Name="ISITEOS"> <Paragraph> <Title>Le prix comprend</Title> <Text>Le vol spécial Paris/Malé A/R sur XL Airways du +05/04 au 19/04/10 et sur compagnie régulière Qatar Airways en classe +H du 26/04 au 30/06/10 et du 16/08 au 31/10/10, en classe K du 01/07 +au 15/08/10 les transferts aéroport/Hulhumalé A/R en bateau rapide l& +amp;#8217;hébergement 7 nuits en cabine double en pension complète, l +&amp;#8217;eau potable 2 jeux de draps, serviettes et serviettes de p +lage par personne et par semaine les consommables pour le bateau (eau +, essence et fioul) équipements plongée libre et kayak de mer l&amp;# +8217;assurance de base les taxes aériennes : 54 &amp;euro; sur vol XL +, 185 &amp;euro; sur vol Qatar Airways (soumises à modification), les + frais de dossier.&lt;br/&gt;</Text> </Paragraph> </Description> </Descriptions> </Descriptions><Segments What="Isiteormation"> <Segment xsi:type="SegmentAirType" Direction="Both"> <Segments What="List"/> </Segment> <Segment xsi:type="SegmentStayType"/> </Segments><In> <City Ref="C_"/> <Country Ref="MDV"/> </In></Segment> </Segments> <Segments What="Defaults"/> </Segments> </Catalogue>

Comment on Namespace error when parsing with XML::LibXML
Select or Download Code
Re: Namespace error when parsing with XML::LibXML
by shriken (Priest) on Oct 06, 2010 at 13:54 UTC

    My understanding of properly formed XML is that those namespace attributes should only have a single URI in them -- not two URIs separated by a space. It appears XML::LibXML would agree with me.

    So if the XML is not well formed, I see only two optoins: You must either fix it at the source or munge the XML before trying to parse it. If you can't fix it at the source, I'd just hack in a very specific string substitution to convert that literal double-URI string into a single URI string.

      Hi shriken,

      thanks for your reply, it's my understanding also.

      Anyway I added the following sed code to remove the additionnal namespace delcaration :

      my $file = 'namespace.xml'; system('sed -i "s/http:\/\/www.exchangefortravel.org\/xft\/current //g +" '.$file);

      The errors are gone, but now my XPATH expression doesn't return any nodes. Do you have any idea on what is going on ? Is it related to the namespace pb ?

      Thanks for your help.

        You removed the wrong one. It's the second uri that should be the one that's removed since it's a link to the schema.
Re: Namespace error when parsing with XML::LibXML
by Anonymous Monk on Oct 06, 2010 at 14:17 UTC
    you use readmore tags in addition to code tags, not as a replacement

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://863747]
Approved by sierpinski
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2014-10-25 23:51 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (149 votes), past polls