Door
Eelco Klomp
op 20-09-2019 20:37
gewijzigd op 20-09-2019 21:00
2.840 views
Ik probeer vanaf een feed van een Joomla website met PHP de vacatures te parsen. De titel, de link en datum is geen probleem. Ik krijg voor de omschrijving een lege waarde terug en in chrome zie ik <![CDATA[]]>.
Via Google zie ik dat meer dit probleem hebben, maar ik kom er niet uit hoe ik de omschrijving er nu uit kan halen.
Ik heb al iets met LIBXML_NOCDATA geprobeerd, maar mijn kennis is niet goed genoeg om het op te lossen.... :-( Wie kan met een tip/oplossing geven en me uitleggen hoe dit moet?
<![CDATA[]]> is een manier om XML data te escapen (dan kun je gewoon < en > gebruiken binnen de tekst). Als je "deze tekst" in "CDATA" noteert, dan wordt dat "<![CDATA[deze tekst]]>". Andersom is "<![CDATA[]]>" dus eigenlijk een ingewikkelde manier om niks/leeg te zeggen. Op die manier klopt het dus dat de <description" leeg is.
Tenzij je ook niks terug krijgt als er wel wat tussen de <![CDATA[...]]> staat. Dan graag een toepasselijk XML voorbeeld.
Als ik het goed begrijp zeg je eigenlijk dat in mijn voorbeeld de omschrijving ook echt leeg is. Ik was in de veronderstelling dat <![CDATA[]]> een soort afkorting of zoiets was en dat er daadwerkelijk wel informatie achter/in zat....
Nee de CDATA is niet leeg. In de CDATA staat gewoon data dus deze zou je gewoon moeten kunnen zien.
<description><![CDATA[
<div class="datum">
dinsdag, 03 september 2019</div>
<div class="functie">
Lasser (MIG/MAG)</div>
<div class="locatie">
Leeuwarden</div>
<div class="uren">
Fulltime</div>
<div class="dienstverband">
Tijdelijk met kans op vaste aanstelling</div>
<div class="niveau">
MBO</div>
<div class="omschrijving">
<p>Voor onze relatie in Leeuwarden zijn wij op zoek naar lassers(MIG/MAG).</p>
<p>Als lasser binnen dit bedrijf ben je vooral bezig met het samenstellen van funderingskorven. Het betreft dus voornamelijk hechtlassen.</p>
<p>Enige laservaring is dan ook wel een vereiste. Niveau 1-2 is voldoende.</p>
<p>Daarnaast ga jij ook regelmatig mee op locatie om de funderingskorven af te leveren en deze te plaatsen. </p>
<p> </p>
<p>Bij deze opdrachtgever begin je op basis van een uitzendovereenkomst, maar bij goed bevallen is er zeker weten kans op werk voor langere tijd. Ook een vaste aanstelling is uiteindelijk mogelijk.</p>
<p> </p>
<p> </p>
<p> </p></div>
<div class="eisen">
<ul>
<li> Las ervaring MIG/MAG niveau 1-2</li>
<li> VCA is een pré</li>
</ul></div>
<div class="bieden">
<ul>
<li> Een fulltime functie voor langere tijd</li>
<li> Salaris conform cao Kleinmetaal</li>
</ul></div>
<div class="categorie">
Bouw</div>
]]></description>
Vaak is het wel zo dat feeds de character encoding niet honoreren, dat zou kunnen resulteren in lege strings als deze door bepaalde functies heengehaald worden. Dus dat zou een verklaring kunnen zijn voor lege strings als je wel echt inhoud verwacht.