Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> domxml i ns
deirathe
post 21.01.2008, 12:43:13
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

Ostrzeżenie: (0%)
-----


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


--------------------
Kawałek mojego blogu
Everything should be as simple as possible but not simpler.
A Einstein
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
webdice
post 21.01.2008, 12:55:58
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




  1. <?php
  2. $tpl->loadXML($htm);
  3. ?>


Trochę logiki, co ma HTML do XML?
Go to the top of the page
+Quote Post
deirathe
post 21.01.2008, 12:58:26
Post #3





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

Ostrzeżenie: (0%)
-----


a Ty uzyj glowy zobacz na dokument!!! to jest poprawny xml, wiec zamiast nabijac sobie posty odpowiedziami ktore nic nie wnosza zamilcz


--------------------
Kawałek mojego blogu
Everything should be as simple as possible but not simpler.
A Einstein
Go to the top of the page
+Quote Post
webdice
post 21.01.2008, 13:05:20
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




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.
Go to the top of the page
+Quote Post
nevt
post 21.01.2008, 13:05:55
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

Ostrzeżenie: (0%)
-----


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?

Ten post edytował nevt 21.01.2008, 13:09:39


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
deirathe
post 21.01.2008, 13:34:44
Post #6





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował deirathe 21.01.2008, 13:12:47


--------------------
Kawałek mojego blogu
Everything should be as simple as possible but not simpler.
A Einstein
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:01