Toon posts:

[PHP5] DOMDocument, getElementsByTagName probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi!

Ik heb wat problemen bij het gebruik van DOMDocument met een XML File.
De XML File heeft enkele tags met hierin een dubbele punt, en hierop werkt getElementsByTagName niet. Nu zou ik de tagnames van hun dubbele punt kunnen strippen, maar ik ga liever direct met de XML File aan de slag.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
    $XML = new DOMDocument();
    $XML->load($xmlfeed);
            
    $items = $XML->getElementsByTagName("item");
    $i = 0;
            
    foreach ($items as $item)
    {
    $prices = $event->getElementsByTagName("stock:min");
    $price  = $price ->item(0)->nodeValue;
    $data[] = $price;
    }


De XML File

XML:
1
2
3
4
5
<item>
       <name>Product 1</name>
       <stock:min>5</stock:min>
       <stock:max>8</stock:max> 
</item>


Is hier dus een workaround voor, in plaats van met replaces aan de slag te gaan? :)

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 14:45

DataGhost

iPL dev

Waarschijnlijk komt het doordat een : een namespace aangeeft, en het geheel daarom geen tag is (Bron). Daar moet je dus een andere functie voor gebruiken, zoals deze.

[ Voor 32% gewijzigd door DataGhost op 31-10-2007 20:49 ]


Verwijderd

Topicstarter
Ah, dat verklaart een hoop.

Anyway, de echte XML Data, en dan specifiek de tags, staan in de xcal namespace. Hiervoor kan ik geen url vinden om te gebruiken.

XML:
1
<xcal:dtstart></xcal:dtstart>

Verwijderd

Topicstarter
Heb het nu opgelost door met een regex de namespace eruit te strippen, maar dit lijkt me niet de netste manier, bovendien is het performancetechnisch ook niet geheel geweldig.