xml-general-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jas...@apache.org
Subject cvs commit: xml-site/targets/xerces-p dom2hash.html
Date Tue, 11 Nov 2003 14:51:59 GMT
jasons      2003/11/11 06:51:59

  Added:       targets/xerces-p dom2hash.html
  Log:
  new
  
  Revision  Changes    Path
  1.1                  xml-site/targets/xerces-p/dom2hash.html
  
  Index: dom2hash.html
  ===================================================================
  <HTML><HEAD><SCRIPT language="JavaScript" src="resources/script.js" type="text/javascript"></SCRIPT><TITLE>DOM2hash.pl</TITLE></HEAD><BODY
alink="#ff0000" bgcolor="#ffffff" leftmargin="4" link="#0000ff" marginheight="4" marginwidth="4"
text="#000000" topmargin="4" vlink="#0000aa"><TABLE border="0" cellpadding="0" cellspacing="0"
width="620"><TR><TD align="left" height="60" rowspan="3" valign="top" width="135"><IMG
border="0" height="60" hspace="0" src="resources/logo.gif" vspace="0" width="135"></TD><TD
align="left" colspan="4" height="5" valign="top" width="456"><IMG border="0" height="5"
hspace="0" src="resources/line.gif" vspace="0" width="456"></TD><TD align="left"
height="60" rowspan="3" valign="top" width="29"><IMG border="0" height="60" hspace="0"
src="resources/right.gif" vspace="0" width="29"></TD></TR><TR><TD
align="left" bgcolor="#0086b2" colspan="4" height="35" valign="top" width="456"><IMG
alt="" border="0" height="35" hspace="0" src="graphics/dom2hash-header.jpg" vspace="0" width="456"></TD></TR><TR><TD
align="left" height="20" valign="top" width="168"><IMG border="0" height="20" hspace="0"
src="resources/bottom.gif" vspace="0" width="168"></TD><TD align="left" height="20"
valign="top" width="96"><A href="http://xml.apache.org/" onMouseOut="rolloverOff('xml');"
onMouseOver="rolloverOn('xml');" target="new"><IMG alt="http://xml.apache.org/" border="0"
height="20" hspace="0" name="xml" onLoad="rolloverLoad('xml','resources/button-xml-hi.gif','resources/button-xml-lo.gif');"
src="resources/button-xml-lo.gif" vspace="0" width="96"></A></TD><TD align="left"
height="20" valign="top" width="96"><A href="http://www.apache.org/" onMouseOut="rolloverOff('asf');"
onMouseOver="rolloverOn('asf');" target="new"><IMG alt="http://www.apache.org/" border="0"
height="20" hspace="0" name="asf" onLoad="rolloverLoad('asf','resources/button-asf-hi.gif','resources/button-asf-lo.gif');"
src="resources/button-asf-lo.gif" vspace="0" width="96"></A></TD><TD align="left"
height="20" valign="top" width="96"><A href="http://www.w3.org/" onMouseOut="rolloverOff('w3c');"
onMouseOver="rolloverOn('w3c');" target="new"><IMG alt="http://www.w3.org/" border="0"
height="20" hspace="0" name="w3c" onLoad="rolloverLoad('w3c','resources/button-w3c-hi.gif','resources/button-w3c-lo.gif');"
src="resources/button-w3c-lo.gif" vspace="0" width="96"></A></TD></TR></TABLE><TABLE
border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD align="left" valign="top"
width="120"><IMG border="0" height="14" hspace="0" src="resources/join.gif" vspace="0"
width="120"><BR>
    <A href="../index.html" onMouseOut="rolloverOff('side-ext-2');" onMouseOver="rolloverOn('side-ext-2');"><IMG
alt="Home" border="0" height="12" hspace="0" name="side-ext-2" onLoad="rolloverLoad('side-ext-2','graphics/ext-2-label-2.jpg','graphics/ext-2-label-3.jpg');"
src="graphics/ext-2-label-3.jpg" vspace="0" width="120"></A><BR>
    <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
    <A href="index.html" onMouseOut="rolloverOff('side-index');" onMouseOver="rolloverOn('side-index');"><IMG
alt="Readme" border="0" height="12" hspace="0" name="side-index" onLoad="rolloverLoad('side-index','graphics/index-label-2.jpg','graphics/index-label-3.jpg');"
src="graphics/index-label-3.jpg" vspace="0" width="120"></A><BR>
    <A href="samples.html" onMouseOut="rolloverOff('side-samples');" onMouseOver="rolloverOn('side-samples');"><IMG
alt="Samples" border="0" height="12" hspace="0" name="side-samples" onLoad="rolloverLoad('side-samples','graphics/samples-label-2.jpg','graphics/samples-label-3.jpg');"
src="graphics/samples-label-3.jpg" vspace="0" width="120"></A><BR>
    <A href="download.html" onMouseOut="rolloverOff('side-download');" onMouseOver="rolloverOn('side-download');"><IMG
alt="Download" border="0" height="12" hspace="0" name="side-download" onLoad="rolloverLoad('side-download','graphics/download-label-2.jpg','graphics/download-label-3.jpg');"
src="graphics/download-label-3.jpg" vspace="0" width="120"></A><BR>
    
    
    
    
    
    
    
    
    <IMG border="0" height="6" hspace="0" src="resources/separator.gif" vspace="0" width="120"><BR>
    <A href="releases.html" onMouseOut="rolloverOff('side-releases');" onMouseOver="rolloverOn('side-releases');"><IMG
alt="Releases" border="0" height="12" hspace="0" name="side-releases" onLoad="rolloverLoad('side-releases','graphics/releases-label-2.jpg','graphics/releases-label-3.jpg');"
src="graphics/releases-label-3.jpg" vspace="0" width="120"></A><BR>
  <IMG border="0" height="14" hspace="0" src="resources/close.gif" vspace="0" width="120"><BR></TD><TD
align="left" valign="top" width="500"><TABLE border="0" cellpadding="3" cellspacing="0"><TR><TD>
        <DIV align="right"><TABLE border="0" cellpadding="0" cellspacing="4" width="464"><TR><TD
bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif"
vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG
border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD
bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif"
vspace="0" width="1"></TD></TR><TR><TD bgcolor="#0086b2" width="1"><IMG
border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD><TD
bgcolor="#ffffff" width="462"><FONT size="-1"><PRE>
  use XML::Xerces qw(error);
  use Getopt::Long;
  use Data::Dumper;
  use strict;
  my %OPTIONS;
  my $rc = GetOptions(\%OPTIONS,
  		    'help'
  		   );
  
  my $USAGE = &lt;&lt;&quot;EOU&quot;;
  usage: $0 xml_file
  EOU
  
  die &quot;Bad option: $rc\n$USAGE&quot; unless $rc;
  die $USAGE if exists $OPTIONS{help};
  
  die &quot;Must specify input files\n$USAGE&quot; unless scalar @ARGV;
  
  package MyNodeFilter;
  use strict;
  use vars qw(@ISA);
  @ISA = qw(XML::Xerces::PerlNodeFilter);
  sub acceptNode {
    my ($self,$node) = @_;
    return $XML::Xerces::DOMNodeFilter::FILTER_ACCEPT;
  }
  
  package main;
  
  my $DOM = XML::Xerces::XercesDOMParser-&gt;new();
  my $ERROR_HANDLER = XML::Xerces::PerlErrorHandler-&gt;new();
  $DOM-&gt;setErrorHandler($ERROR_HANDLER);
  eval{$DOM-&gt;parse($ARGV[0])};
  error($@,&quot;Couldn't parse file: $ARGV[0]&quot;)
    if $@;
  
  my $doc = $DOM-&gt;getDocument();
  my $root = $doc-&gt;getDocumentElement();
  
  my $hash = node2hash($root);
  print STDOUT Data::Dumper-&gt;Dump([$hash]);
  exit(0);
  
  sub node2hash {
    my $node = shift;
    my $return = {};
  
    # build a hasref that represents this element
    $return-&gt;{node_name} = $node-&gt;getNodeName();
    if ($node-&gt;hasAttributes()) {
      my %attrs = $node-&gt;getAttributes();
      $return-&gt;{attributes} = \%attrs;
    }
  
    # insert code to handle children
    if ($node-&gt;hasChildNodes()) {
      my $text;
      foreach my $child ($node-&gt;getChildNodes) {
        push(@{$return-&gt;{children}},node2hash($child))
  	if $child-&gt;isa('XML::Xerces::DOMElement');
        $text .= $child-&gt;getNodeValue()
  	if $child-&gt;isa('XML::Xerces::DOMText');
      }
      $return-&gt;{text} = $text
        if $text !~ /^\s*$/;
    }
    return $return;
  }
  </PRE></FONT></TD><TD bgcolor="#0086b2" width="1"><IMG border="0"
height="1" hspace="0" src="resources/void.gif" vspace="0" width="1"></TD></TR><TR><TD
bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif"
vspace="0" width="1"></TD><TD bgcolor="#0086b2" height="1" width="462"><IMG
border="0" height="1" hspace="0" src="resources/void.gif" vspace="0" width="462"></TD><TD
bgcolor="#0086b2" height="1" width="1"><IMG border="0" height="1" hspace="0" src="resources/void.gif"
vspace="0" width="1"></TD></TR></TABLE></DIV>
  </TD></TR></TABLE></TD></TR></TABLE><BR><TABLE
border="0" cellpadding="0" cellspacing="0" width="620"><TR><TD bgcolor="#0086b2"><IMG
height="1" src="images/dot.gif" width="1"></TD></TR><TR><TD align="center"><FONT
color="#0086b2" size="-1"><I>
                Copyright &copy; 2001 The Apache Software Foundation.
                All Rights Reserved.
              </I></FONT></TD></TR></TABLE></BODY></HTML>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: general-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: general-cvs-help@xml.apache.org


Mime
View raw message