Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Tidy Functions : tidy_node->get_nodes

tidy_node->get_nodes

Return an array of nodes under this node with the specified id ()
array tidy_node->get_nodes ( int node_id )


Code Examples / Notes » tidy_node_get_nodes

chuck renner

I have found no documentation on this method, and it is not part of PHP 5.1.2 .  I am guessing as to its use in the example below.  I hope this helps anyone who does have access (perhaps with a CVS-based build of PHP) to this method.  I also hope that this method will be available soon.
<?php
// call a function which prints all the IMG nodes in a URI
print_img_nodes_for_uri("http://www.php.net/");
function print_img_nodes_for_uri($uri) {
// create a tidy object for the uri given
$tidy->parseFile($uri);
// clean the tidy object
$tidy->cleanRepair();
// get the cleaned output and put it in a tidy_node
$tidy_output = tidy_get_output($tidy);
// get just the body and put it in a tidy_node
$body = tidy_get_body($tidy);
// using tidy_node->get_nodes on the tidy_node $body
// with the TIDY_TAG_IMG constant, build an array of
// all the IMG nodes
// This produces a FATAL ERROR in PHP 5.1.2:
// Fatal error: Call to undefined method tidyNode::get_nodes()
// I do not know what in what version of PHP this method
// will be available
$img_nodes = $body->get_nodes(TIDY_TAG_IMG);
// begin printing the IMG nodes
print("
\n --- Begin img nodes for $uri ---
\n");
// using foreach, loop through each IMG node
foreach( $img_nodes as $img_node ) {
// print the current node, using htmlspecialchars() to convert
// HTML characters to web printable format
print("img_node=" . htmlspecialchars($img_node) . "
\n");
}
// finish printing the IMG nodes
print("
\n --- End img nodes for $uri ---
\n");
return(0);
}
?>


brutuscat

Another method more efficient
<?php
   function get_nodes2($node, $type, &$result)
   {
     if($node != null)
     {
       if($node->id == $type)
         $result[] = $node;
       if($node->child != null)
       {
         foreach($node->child as $child)
         {
           get_nodes2($child, $type, &$result);
         }
       }
     }
   }
?>


Change Language


Follow Navioo On Twitter
ob_tidyhandler
tidy_access_count
tidy_clean_repair
tidy_config_count
tidy::__construct
tidy_diagnose
tidy_error_count
tidy_get_body
tidy_get_config
tidy_get_error_buffer
tidy_get_head
tidy_get_html_ver
tidy_get_html
tidy_get_opt_doc
tidy_get_output
tidy_get_release
tidy_get_root
tidy_get_status
tidy_getopt
tidy_is_xhtml
tidy_is_xml
tidy_load_config
tidy_node->get_attr
tidy_node->get_nodes
tidy_node->next
tidy_node->prev
tidy_parse_file
tidy_parse_string
tidy_repair_file
tidy_repair_string
tidy_reset_config
tidy_save_config
tidy_set_encoding
tidy_setopt
tidy_warning_count
tidyNode->hasChildren
tidyNode->hasSiblings
tidyNode->isAsp
tidyNode->isComment
tidyNode->isHtml
tidyNode->isJste
tidyNode->isPhp
tidyNode->isText
tidyNode::getParent
eXTReMe Tracker