Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XML::XML2JSON(3)      User Contributed Perl Documentation     XML::XML2JSON(3)

NAME
       XML::XML2JSON - Convert XML into	JSON (and back again) using
       XML::LibXML

SYNOPSIS
	       use XML::XML2JSON;

	       my $XML = '<test><element foo="bar"/></test>';

	       my $XML2JSON = XML::XML2JSON->new();

	       my $JSON	= $XML2JSON->convert($XML);

	       print $JSON;

	       my $RestoredXML = $XML2JSON->json2xml($JSON);

DESCRIPTION
       I used Google for inspiration:
       http://code.google.com/apis/gdata/json.html

       In short:

       o   The response	is represented as a JSON object; each nested element
	   or attribute	is represented as a name/value property	of the object.

       o   Attributes are converted to String properties.

       o   Attribute names are prefixed	with "@" so that they dont conflict
	   with	child elements of the same name.

       o   Child elements are converted	to Object properties.

       o   Text	values of tags are converted to	$t properties.

       Namespace

       o   If an element has a namespace alias,	the alias and element are
	   concatenated	using "$". For example,	ns:element becomes ns$element.

       XML

       o   XML version and encoding attributes are converted to	attribute
	   version and encoding	of the root element, respectively.

METHODS
   new
       Creates a new XML::XML2JSON object.

       It supports the following arguments:

       module

       This is the JSON	module that you	want to	use.  By default it will use
       the first one it	finds, in the following	order: JSON::Syck, JSON::XS,
       JSON, JSON::DWIW

       private_elements

       An arraryref of element names that should be removed after calling the
       sanitize	method.	 Children of the elements will be removed as well.

       empty_elements

       An arrayref of element names that should	have their attributes and text
       content removed after calling the sanitize method. This leaves any
       children	of the elements	intact.

       private_attributes

       An arrayref of attribute	names that should be removed after calling the
       sanitize	method.

       attribute_prefix

       All attributes will be prefixed by this when converting to JSON.	This
       is "@" by default.  You can set this to "", but if you do, any
       attributes that conflict	with a child element name will be lost.

       content_key

       This is the name	of the hash key	that text content will be added	to.
       This is "$t" by default.

       force_array

       If set to true, child elements that appear only once will be added to a
       one element array.  If set to false, child elements that	appear only
       once will be assesible as a hash	value.

       The default is false.

       pretty

       If set to true, output will be formatted	to be easier to	read whenever
       possible.

       debug

       If set to true, will print warn messages	to describe what it is doing.

   convert
       Takes an	XML string as input.  Returns a	string of sanitized JSON.

       Calling this method is the same as:

	       my $Obj = $XML2JSON->xml2obj($XML);
	       $XML2JSON->sanitize($Obj);
	       my $JSON	= $XML2JSON->obj2json($Obj);

   xml2json
       This is an alias	for convert.

   obj2json
       Takes a perl data object	as input.  Return a string of equivalent JSON.

   dom2obj
       Takes an	XML::LibXML::Document object as	input.	Returns	an equivalent
       perl data structure.

   xml2obj
       Takes an	xml string as input.  Returns an equivalent perl data
       structure.

   sanitize
       Takes a perl hashref as input.  (You would normally pass	this method
       the object returned by the xml2obj method.)

       This method does	not return anything. The object	passed into it is
       directly	modified.

       Since JSON is often returned directly to	a client's browser, there are
       cases where sensitive data is left in the response.

       This method allows you to filter	out content that you do	not want to be
       included	in the JSON.

       This method uses	the private_elements, empty_elements and
       private_attributes arguments which are set when calling the "new"
       method.

   json2xml
       Takes a JSON string as input.  Returns a	string of equivalent XML.

       Calling this method is the same as:

	       my $Obj = $Self->json2obj($JSON);
	       my $XML = $Self->obj2xml($Obj);

   json2obj
       Takes a json string as input.  Returns an equivalent perl data
       structure.

   obj2dom
       Takes a perl data structure as input. (Must be a	hashref.)  Returns an
       XML::LibXML::Document object.

       This method expects the object to be in the same	format as would	be
       returned	by the xml2obj method.

       In short:

       o   The root hashref may	only have a single hashref key.	That key will
	   become the xml document's root.

       o   A hashref will be converted to an element.

       o   An arraysref	of hashrefs will be converted into multiple child
	   elements. Their names will be set to	the name of the	arrayref's
	   hash	key.

       o   If an attribute is prefixed by an "@", the "@" will be removed.

       o   A hashkey named "$t"	will be	converted into text content for	the
	   current element.

       Namespace

       o   If a	namespace alias	has a "$", it will be replaced using ":". For
	   example, ns$element becomes ns:element.

       Caveats:

       o   The order of	child elements and attributes cannot be	determined.

   obj2xml
       This method takes the same arguments as obj2dom.	 Returns the XML as a
       string.

CAVEATS
       The order of child elements is not always preserved.  This is because
       the conversion to json makes use	of hashes in the resulting json.

AUTHOR
       Ken Prows - perl(AT)xev.net

COPYRIGHT & LICENSE
       Copyright (C) 2007-2008 Ken Prows

       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.1			  2012-01-22		      XML::XML2JSON(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | CAVEATS | AUTHOR | COPYRIGHT & LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=XML::XML2JSON&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help