<HTML> <HEAD> <TITLE>How about a simple example?</TITLE> </HEAD> <BODY> <P><B>Links</B>: <A HREF=extend.html>Next</A> <A HREF=xtrainfo.html>Previous</A> <A HREF=sgmlspm.html>Up</A> <A HREF=sgmlspm.html>Top</A></P> <H1>How about a simple example?</H1> <P>OK. The following script simply reports its events:</P> <P> <PRE>#!/usr/bin/perl use SGMLS; $this_parse = new SGMLS(STDIN); # Read from standard input. while ($this_event = $this_parse->next_event) { my $type = $this_event->type; my $data = $this_event->data; SWITCH: { $type eq 'start_element' && do { print "Beginning element: " . $data->name . "\n"; last SWITCH; }; $type eq 'end_element' && do { print "Ending element: " . $data->name . "\n"; last SWITCH; }; $type eq 'cdata' && do { print "Character data: " . $data . "\n"; last SWITCH; }; $type eq 'sdata' && do { print "Special data: " . $data . "\n"; last SWITCH; }; $type eq 're' && do { print "Record End\n"; last SWITCH; }; $type eq 'pi' && do { print "Processing Instruction: " . $data . "\n"; last SWITCH; }; $type eq 'entity' && do { print "External Data Entity: " . $data->name . " with notation " . $data->notation->name . "\n"; last SWITCH; }; $type eq 'start_subdoc' && do { print "Beginning Subdocument Entity: " . $data->name . "\n"; last SWITCH; }; $type eq 'end_subdoc' && do { print "Ending Subdocument Entity: " . $data->name . "\n"; last SWITCH; }; $type eq 'conforming' && do { print "This is a conforming SGML document\n"; last SWITCH; }; } } </PRE> </P> <P>To use it under Unix, try something like</P> <P> <PRE>sgmls document.sgml | perl sample.pl</PRE> </P> <P>and watch the output scroll down.</P> <P><B>Links</B>: <A HREF=extend.html>Next</A> <A HREF=xtrainfo.html>Previous</A> <A HREF=sgmlspm.html>Up</A> <A HREF=sgmlspm.html>Top</A></P> <ADDRESS>David Megginson <A HREF="mailto:dmeggins@aix1.uottawa.ca"><dmeggins@aix1.uottawa.ca></A></ADDRESS> </BODY> </HTML>