Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: domxml i ns
Forum PHP.pl > Forum > PHP
deirathe
mam taki kod:
  1. $htm = 
  2. '<?xml version="1.0" ?>
  3. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:tpl="http://someexample.com">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  6. <title>Untitled Document</title>
  7. </head>
  8.  
  9. <body>
  10. <tpl:value-of select="" />
  11. <tpl:foreach select="">
  12. <tpl:lang href="" />
  13. </tpl:foreach>
  14. </body>
  15. </html>
  16.  
  17.  
  18. ';
  19.  
  20. echo "<pre>";
  21. $tpl = new DOMDocument('1.0');
  22. $tpl->loadXML($htm); 
  23. $elements = $tpl->getElementsByTagName("tpl");
  24. print_r($elements->item(0));

powinienem otrzymac domnodeelement jednak nie dostaje nic, tzn ze nie znajduje mi tagow tpl;/, wie moze ktos jak to rozwiazac, chce wyciagnac wszystkie tagi tpl z dokumentu.
Dzieki z gory
webdice
  1. <?php
  2. $tpl->loadXML($htm);
  3. ?>


Trochę logiki, co ma HTML do XML?
deirathe
a Ty uzyj glowy zobacz na dokument!!! to jest poprawny xml, wiec zamiast nabijac sobie posty odpowiedziami ktore nic nie wnosza zamilcz
webdice
Cytat(deirathe @ 21.01.2008, 12:58:26 ) *
a Ty uzyj glowy (...)


Jakiej głowy?

Cytat(deirathe @ 21.01.2008, 12:58:26 ) *
(...) zobacz na dokument!!! (...)


Widziałem i dlatego piszę.

Cytat(deirathe @ 21.01.2008, 12:58:26 ) *
(...) to jest poprawny xml (...)


No to sobie poczytaj troszkę.

Cytat(deirathe @ 21.01.2008, 12:58:26 ) *
(...) wiec zamiast nabijac sobie posty odpowiedziami ktore nic nie wnosza zamilcz (...)


Nic Ci na to nie poradzę że się nie domyśliłeś i nazywasz moją pomoc nabijaniem postów.
nevt
webdicepl
Cytat
Trochę logiki, co ma HTML do XML?

dokładnie tyle że XML jest uogólnieniem języków typy HTML, tzn. że możesz w XML zdefiniować zbiór reguł określających poprawny kod HTML...
a to cytat z twojego linku:
Cytat
Popularne języki oparte na XML
...
XHTML - Extensible HyperText Markup Language, strony WWW
...
idź się kolego przespać, zamiast ludziom we łbach mieszać...

a co do zasadniczego problemu deirathe... pierwszy raz widzę taką składnię dla nazw tagów w XML... możliwe, że jestem mało doświadczony w temacie, ale sprawdzałeś przypadkiem, czy $tpl->getElementsByTagName('body'), albo $tpl->getElementsByTagName('title') też nic nie zwraca?
deirathe
zwraca
  1. DOMElement Object
  2. (
  3. )

ok, przyznaje się że ten dokument to w rzeczywistosci html, ale mozna go uzywac jako xml bo
a.) ma jeden wezel glowny: html
b.) ma deklaracje
c.) wszystkie tagi sa zamkniete

Jak uzyje <tpl> bez przestrzeni nazw to go zwroci a z przestrzenia juz nie chce;/...

Ok, oto rozwiązanie
  1. <?php
  2. $htm = 
  3. '<?xml version="1.0" ?>
  4. <html xmlns="http://www.w3.org/1999/xhtml" xmlns:tpl="http://someexample.com">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  7. <title>Untitled Document</title>
  8. </head>
  9.  
  10. <body>
  11. <tpl:value-of select="asd" />
  12. <tpl:foreach select="asd2">
  13. <tpl:lang href="" />
  14. </tpl:foreach>
  15. </body>
  16. </html>
  17.  
  18.  
  19. ';
  20.  
  21. echo "<pre>";
  22. $tpl = new DOMDocument('1.0');
  23. $tpl->loadXML($htm); 
  24. $elements = $tpl->getElementsByTagNameNS('http://someexample.com', '*');//trzeba pobrac elementy poprzez NS, nie wiem czemu inaczej nie chce dzialac
  25. foreach($elements as $item)
  26. {
  27. print_r($item->getAttribute("select")); 
  28. echo "<br/>";
  29. }
  30. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.