Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> DOMDocument + DTD, Jak przy pomocy DOMDocument wstawić doctype?
koodlaty
post
Post #1





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

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


Tworzę dokument przy pomocy DOMDocument.

Chcę by xml zawierał definicję dokumentu.

Jak "po bożemu" umieścić <!DOCTYPE> z poziomu DOMDocument?

Ten post edytował koodlaty 8.08.2008, 10:48:48
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
TrevorGryffits
post
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 29.07.2007
Skąd: Tarnowskie Góry

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


Hmm... A dodać DOMDocumentType" title="Zobacz w manualu PHP" target="_manual?
Go to the top of the page
+Quote Post
wrzasq
post
Post #3





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


nie wiem, czy sa jakies inne, szybsze sposoby, ale po moich probach, nie udalo mi sie nic innego niz to co tutaj wklejak (fragment kodu jednej z moich klas):

  1. <?php
  2. // for DTD
  3. $dom = new DOMImplementation();
  4.  
  5. // creates DTD with path that will be used in packages directories
  6. $dtd = $dom->createDocumentType('repository', '', '../../wrzasqcmf.dtd');
  7.  
  8. // XML prolog
  9. $document = $dom->createDocument('', 'package', $dtd);
  10. $document->encoding = 'utf-8';
  11. $document->version = '1.0';
  12. $root = $document->documentElement;
  13. ?>
Go to the top of the page
+Quote Post
koodlaty
post
Post #4





Grupa: Zarejestrowani
Postów: 118
Pomógł: 3
Dołączył: 6.07.2006
Skąd: Dublin

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


Tak wrzasq, tak jest elegancko, ale w ten sposób wskazujesz zewnętrznych plik, a jak umieścic całą definicję wewnątrz XML-a?
Go to the top of the page
+Quote Post
wrzasq
post
Post #5





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


z tego co sie orientuje, to takiej mozliwosci nie ma, zreszta na forum znalazlem duzo starszy temat: http://forum.php.pl/Generacja_DTD_na_podst...ntu_t78706.html ktory pozosal bez odpowiedzi, czyli odpowiedzi nikt nie znal. dlatego sadze, ze nie ma takiej mozliwosci (na pewno nie istnieje do tego jakis ludzki interfejs, moze da sie ten cel osiagnac jakos preparujac dane do innych funkcji nie przeznaczonych do tego celu).
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


koodlaty: konktatenacja?

$xml = $dtd . $xmlWithoutDTD;

?
z tym ze oczywiscie nie robisz tego DOMem


edit: lol, teraz dopiero przeczytalem linka od wrzasq

koodlaty, chcesz wygenerowac DTD, czy do znasz i chcesz tylko dodac?

Ten post edytował dr_bonzo 11.08.2008, 17:39:03
Go to the top of the page
+Quote Post
kwiateusz
post
Post #7


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




wg pierwszego postu ma juz dtd i chce wstawic doctype do xmla
Go to the top of the page
+Quote Post
wrzasq
post
Post #8





Grupa: Zarejestrowani
Postów: 206
Pomógł: 18
Dołączył: 6.03.2006
Skąd: Szczecin

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


nie chce sie wypowiadac za koodlaty'ego, natomiast tak:

jesli DTD jest zewnetrzne, no to moj kod powinien pomoc (tak jak napisalem przedtem, nie specjalnie szukalem bardziej eleganckich metod).

natomiast po odpowiedzi na moj post mozna sadzic, ze koodlaty chce zrobic cos w ten desen:

Kod
<?xml version="1.0"?>
<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>

(przyklad przeklejony z http://stencel.mimuw.edu.pl/sem/msui/04.10.21.xml/)

do tego tyczy sie moja druga odpowiedz. takze tutaj pewnie wchodzi w gre juz operaowanie na surowym stringu (a wiec juz po eskporcie drzewa DOM). zastanawiam sie natomiast, czy nie da sie jakos "wstrzyknac" calej tej definicji Dodtype'a w metode DOMImplementation::createDocumentType().

ale jestem zbyt pijany, zeby probowac... rano moze wyedytuje... jesli bede pamietal... jak ktos wyprubuje, to niech da znac (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) .

P.S.: sorry za ewentualne blędy w poście, ale o 3:03 we wspomnianym już stanie ciężko się pisze, rano (może) zredaguje.
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 Aktualny czas: 23.08.2025 - 07:05