Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[php] Uitlezen xml:lang attribute van een XML element

Pagina: 1
Acties:

Onderwerpen


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 28-11 22:59

alienfruit

the alien you never expected

Topicstarter
Ik ben momenteel bezig met het verwerken van een XML data bestand middels PHP. Nu loop ik alleen tegen het probleem aan dat SimpleXML gewoon doodleuk de attribuut "xml:lang" overslaat. Nu zal dit vast iets te maken met de XML namespace die moeten worden registreerd. Aleen zie ik hiervoor geen enkele mogelijk.

Ik heb al verschillende dingen geprobeerd zoals het bestand inlezen middels DOMDocument en vervolgens dit doorgeven aan SimpleXML. Alleen dit werkt ook niet.

SimpleXML
PHP:
1
2
3
4
5
6
$xml_contents = file_get_contents("data.xml");
$document = simplexml_load_string($xml_contents);
foreach ( $document as $item ) {
   println("Taal van artikel: " . $item->attributes()->lang;
   println("Taal van artikel: " . $item->attributes()['xml:lang'];
}


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$xml_contents = file_get_contents("data.xml");
$dom = new DOMDocument();
$dom->loadXML( $xml_contents );
if (!$dom) {
    print "Leider ist ein Fehler beim Lesen aufgetreten.";
    exit;
}

$document = simplexml_import_dom($dom);
foreach ( $document as $item ) {
   println("Taal van artikel: " . $item->attributes()->lang;
   println("Taal van artikel: " . $item->attributes()['xml:lang'];
}


Het gaat om het volgende bestand:

code:
1
2
3
4
5
6
7
8
<articles>
<item xml:lang="nl">
<title>Een titel</title>
</item>
<item xml:lang="de">
<title>Ein Titel</title>
</item>
</articles>

  • bstudio
  • Registratie: Oktober 2007
  • Laatst online: 03-12-2022
kijk eerst eens wat je terug krijgt van
code:
1
var_dump($item->attributes());

Dan zie je in ieder geval wat voor attributen je terug krijgt

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
http://nl.php.net/manual/en/simplexmlelement.attributes.php heeft 2 parameters. ALs je dus de attributes uit die namespace wilt, kan je 'xml' en true meegeven. :)

offtopic:
Geen idee wat je met println() doet, maar ik gok dat het redundant is met var_dump(), var_export() of printr() ;)

{signature}


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 28-11 22:59

alienfruit

the alien you never expected

Topicstarter
Argh, wat stom zeg! Ik ga het proberen...

edit:
Gaaf het werkt!

[ Voor 27% gewijzigd door alienfruit op 03-03-2011 17:11 ]