Pogledajte određenu poruku
Staro 08. 07. 2008.   #4
srdjevic
profesionalac
Professional
 
Datum učlanjenja: 15.06.2005
Lokacija: Chicago IL, USA
Poruke: 209
Hvala: 12
12 "Hvala" u 11 poruka
srdjevic is on a distinguished road
Default

Dokumentacija za funkciju xml_set_character_data_handler kaze sledece:
Citat:
Character data handler is called for every piece of a text in the XML document. It can be called multiple times inside each fragment (e.g. for non-ASCII strings).
Dakle, treba da pogledas kako primeri rade; svi teraju concatenate. Dakle, da bi sastavio tag, potrebno je ili da
1) ispisujes sve ovo malko drugacije ako hoces sve odjednom da radis; ili da
2) trpas sve u varijablu/objekat dok ne dodje red na print pa da pljunes sve u nekoj petlji.


Pretpostavljam da ti je ovo samo test primer, pa da nece izgledati tako, ali evo kako bismo oba primera naterali da radi:

1) ovo je samo deo koda koji treba promeniti. Dakle, pocetak vrednosti ispisujes u startu taga, kraj u endu taga, a kontent samo printas u nizu:

PHP kôd:
function start_tag($parser$name) {
   echo 
"<b>$name</b><br><i>";
}

function 
end_tag($parser$name) {
   echo 
"</i><br><b>$name</b><br>";
}

function 
tag_contents($parser$data) {
   echo 
$data;

2) opet samo deo koda. Dakle, inicijalizujes var u startu, cuvas je u endu, a content samo concatenate:

PHP kôd:
$final = array();
function 
start_tag($parser$name) {
  
$GLOBALS['_tagvalue'] = '';
}

function 
end_tag($parser$name) {
  
$GLOBALS['final'][$name][] = $GLOBALS['_tagvalue']; // sacuvaj vrednost
  
$GLOBALS['_tagvalue'] = null;
}

function 
tag_contents($parser$data) {
  
$GLOBALS['_tagvalue'] .= $data;

...a kako postoje nested tagovi i razne druge perverzije, mozda je bolje potraziti neku klasu koja radi posao, a ti samo da radis posle foreach lepo ili sta vec pa da pljujes podatke iz objekta... da glava ne boli...
__________________
ActiveCampaign - Email marketing made simple.
srdjevic je offline   Odgovorite uz citat