Location: PHPKode > scripts > SAXY XML parser > rdfdump.php
<?php
include_once("class_rdf_parser.php");

/* This is the URI of the document to be dumped: */

$base="http://www.w3.org/2000/10/rdf-tests/RSS_1.0/rss_5.3_1.rdf";
//$base="resource-01.rdf";

/* RDF Parser Handler functions are defined below this code */

$statements=0;

$input = fopen($base,"r");
$rdf=new Rdf_parser();
$rdf->rdf_parser_create( NULL );
$rdf->rdf_set_user_data( $statements );
$rdf->rdf_set_statement_handler( "my_statement_handler" );
$rdf->rdf_set_parse_type_literal_handler("my_start_parse_type_literal_handler","my_end_parse_type_literal_handler" );
$rdf->rdf_set_element_handler("my_start_element_handler", "my_end_element_handler" );
$rdf->rdf_set_character_data_handler("my_character_data_handler" );
$rdf->rdf_set_warning_handler("my_warning_handler" );
$rdf->rdf_set_base($base );
$done=false;
while(!$done)
{
  $buf = fread( $input, 512 );
  $done = feof($input);

  if ( ! $rdf->rdf_parse( $buf, strlen($buf), feof($input) ) )
  {
    printf(
	"**** ERROR **** : %s at line %s",
	print( xml_get_error_code( $rdf->rdf_get_xml_parser() ) ),
	print( xml_get_current_line_number($rdf->rdf_get_xml_parser() ) ) );

	return 1;
  }
} 
/* close file. */
fclose( $input );
$rdf->rdf_parser_free();
printf( "Total statements: ". $statements );


/* handlers */

function my_statement_handler(
	&$user_data,
	$subject_type,
	$subject,
	$predicate,
	$ordinal,
	$object_type,
	$object,
	$xml_lang )
{
	//$statements = $user_data;

	++$user_data;

	printf( "ordinal($ordinal) triple(" );

	switch( $subject_type )
	{
	case RDF_SUBJECT_TYPE_URI:
		printf( "\"%s\"", $subject );
		break;
	case RDF_SUBJECT_TYPE_DISTRIBUTED:
		printf( "distributed(\"%s\")", $subject );
		break;
	case RDF_SUBJECT_TYPE_PREFIX:
		printf( "prefix(\"%s\")", $subject );
		break;
	case RDF_SUBJECT_TYPE_ANONYMOUS:
		printf( "anonymous(\"%s\")", $subject );
		break;
	}

	printf( ", \"%s\", ", $predicate );

	switch( $object_type )
	{
	case RDF_OBJECT_TYPE_RESOURCE:
		printf( "\"%s\"", $object );
		break;
	case RDF_OBJECT_TYPE_LITERAL:
		printf( "literal(\"%s\")", $object );
		break;
	case RDF_OBJECT_TYPE_XML:
		printf( "XML" );
		break;
	}

	printf( ")<br/>\n" );

}

	
	
function my_start_parse_type_literal_handler(
	$user_data )
{
	
	printf( "start parse type literal<br/>" );
}


function my_end_parse_type_literal_handler(
	$user_data )
{
	printf( "end parse type literal<br/>" );
}

function my_start_element_handler( 
	$user_data, 
	$name, 
	$attributes )
{
	printf( "start element: $name<br/>\n" );
}

function my_end_element_handler( 
	$user_data, 
	$name )
{
	
	printf( "end element: %s<br/>\n", $name );
}

function my_character_data_handler( 
	$user_data, 
	$s, 
	$len )
{
	
	printf( "characters: $s" );

	

	printf( "<br/>\n" );
}

function my_warning_handler(
	$warning )
{
	printf( "**** WARNING **** : %s<br/>", $warning );
}


?>
Return current item: SAXY XML parser