Joe" ) returns "Joe" // // It also works with strings containing themself sub-tags : // JeanBillie -> // JeanBillie function getContent( $element ) { // deleting start of the tag $content = preg_replace( '/^<[^>]+>/', '', $element ); // deleting end of the tag $content = preg_replace( '/<\/[^>]+>$/', '', $content ); // replacing multiple instance of space character $content = preg_replace( '/\s+/', ' ', $content ); return $content; } // The function get Attribute returns the value corresponding to the // attribute $attribute for the tag $element. function getAttribute( $element, $attribute ) { // echo htmlentities($element).'

'; $regex = '/^<\w+[^>]*'.$attribute.'\s*=\s*"('.VAL_REG.')"/i'; if ( preg_match( $regex, $element, $out ) ) return $out[1]; else return ''; } // The function getChild returns the first child // exemple : getChild( "XXXYYY
", "tr" ) // returns "XXX" function getChild( $document, $node ) { $regex = '/<'.$node.'(\s+'.ATT_REG.'="'.VAL_REG.'")*'; $regex.= '(\s*\/>|>.*<\/'.$node.'>)/U'; preg_match( $regex, $document, $out ); return $out[0]; } // getChildren returns a list of the children identified by the $node // example : // getChild( "XXXYYY
", "tr" ) // returns an array with : // $array[0] equals "XXX" // $array[1] equals "YYY" function getChildren( $document, $node ) { $regex = '/<'.$node.'(\s+'.ATT_REG.'="'.VAL_REG.'")*'; $regex.= '(\s*\/>|>.*<\/'.$node.'>)/U'; preg_match_all( $regex, $document, $out ); return $out[0]; } // get_CodeXML places the content of a text file in a PHP variable and // return it. If the file can't be opened, returns false. function getXmlCode( $filename ) { $file = fopen( $filename, 'r' ); if ( !$file ) { return false; } $xml_content = ''; while ( !feof( $file ) ) { $xml_content .= fgets( $file, 1024 ); } fclose( $file ); $xml_content = str_replace( "\n", '', $xml_content ); $xml_content = str_replace( "\t", '', $xml_content ); return $xml_content; } ?>