Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Domdocument, nie pobiera id
Forum PHP.pl > Forum > Przedszkole
zdzichu
Witajcie.
Mam mały problem z DomDocument- konkretnie z próbą użycia GetElementById().
struktura pliku test.xml:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xml>
  3.      <thumb>test_thumbjpg</thumb>
  4.            <photo id="31979095">
  5.                  <name>31979095.jpg</name>
  6.                  <added>2007-12-12 22:15</added>
  7.            </photo>
  8.            <photo id="30342588">
  9.                  <name>30342588.jpg</name>
  10.                  <added>2008-01-15 21:42</added>
  11.            </photo>
  12. </xml>

natomiast w php robię tak:
  1. <?php
  2. $dom = new DomDocument();
  3. $dom->load('./test.xml');
  4. var_dump($dom->getElementById('31979095') );
  5. echo '<pre>';
  6. // echo $dom->getElementById('31979095');
  7. echo htmlspecialchars($dom->saveXML() );
  8. echo '</pre>';
  9. ?>

?>
otrzymuję:
Cytat
NULL
<?xml version="1.0" encoding="utf-8"?>
<xml>
<thumb>test_thumbjpg</thumb>
<photo id="31979095">
<name>31979095.jpg</name>
<added>2007-12-12 22:15</added>
</photo>
<photo id="30342588">
<name>30342588.jpg</name>
<added>2008-01-15 21:42</added>
</photo>
</xml>

chodzi mi konkretnie o to, że nie pobiera mi elementu o wskazanym id(w tym przypadku to 31979095) mimo że, jak widać, plik jest wczytywany poprawnie (dlatego wyświetlam $dom->saveXML() ).
Czy ktoś może mi wytłumaczyć co robię źle?
nevt
cytuję z mauala:
Cytat
Jako identyfikator należy podać dowolny pojedynczy wyraz, który nie może zawierać znaków: spacji, kropki, przecinka, dwukropka, pytajnika, nawiasów, znaku równości, plusa itp. Może natomiast zawierać litery (A-Z, a-z), cyfry (0-9), myślniki ("-") i podkreślniki ("_"). Lepiej nie używać polskich liter. Nie może się on również rozpoczynać cyfrą ani myślnikiem.

Zatem zamiast <photo id="31979095"> użyj np. <photo id="p31979095"> i wszystko będzie OK.
powodzenia.
ubujamarek
przed
  1. <?php
  2. $dom->load('./test.xml');
  3. ?>

wpisz
  1. <?php
  2. $domMenu->validateOnParse = true;
  3. ?>
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.