API:EPrints/XML

From EPrints Documentation
Revision as of 15:26, 16 December 2011 by Tdb01r (talk | contribs)
Jump to: navigation, search

EPrints 3 Reference: Directory Structure - Metadata Fields - Repository Configuration - XML Config Files - XML Export Format - EPrints data structure - Core API - Data Objects


API: Core API

Latest Source Code (3.4, 3.3) | Revision Log | Before editing this page please read Pod2Wiki


NAME

EPrints::XML - XML Abstraction Module

User Comments


For preference, use the methods in EPrints::Handle::XML








SYNOPSIS

 my $xml = $repository->xml;
 
 $doc = $xml->parse_string( $string );
 $doc = $xml->parse_file( $filename );
 $doc = $xml->parse_url( $url );
 
 $utf8_string = $xml->to_string( $dom_node, %opts );
 
 $dom_node = $xml->clone( $dom_node ); # deep
 $dom_node = $xml->clone_node( $dom_node ); # shallow
 
 # clone and return child nodes
 $dom_node = $xml->contents_of( $dom_node );
 # Return text child nodes as a string
 $utf8_string = $xml->text_contents_of( $dom_node );
 
 $dom_node = $xml->create_element( $name, %attr );
 $dom_node = $xml->create_text_node( $value );
 $dom_node = $xml->create_comment( $value );
 $dom_node = $xml->create_document_fragment;
 
 $xml->dispose( $dom_node );
 

User Comments


DESCRIPTION

EPrints can use either XML::DOM, XML::LibXML or XML::GDOME modules to generate and process XML. Some of the functionality of these modules differs so this module abstracts such functionality so that all the module specific code is in one place.

User Comments


METHODS

User Comments


Parsing

User Comments


parse_string

$doc = $xml->parse_string( $string, %opts )

Returns an XML document parsed from $string.

User Comments


parse_file

$doc = $xml->parse_file( $filename, %opts )

Returns an XML document parsed from the file called $filename.

 base_path - base path to load DTD files from
 no_expand - don't expand entities
 

User Comments


parse_url

$doc = $xml->parse_url( $url, %opts )

Returns an XML document parsed from the content located at $url.

User Comments


Node Creation

User Comments


create_element

$node = $xml->create_element( $name [, @attrs ] )

Returns a new XML element named $name with optional attribute pairs @attrs.

User Comments


create_data_element

$node = $xml->create_data_element( $name, $value [, @attrs ] )

Returns a new XML element named $name with $value for contents and optional attribute pairs @attrs.

$value may be undef, an XML tree or an array ref of children, otherwise it is stringified and appended as a text node. Child entries are passed de-referenced to create_data_element.

 $xml->create_data_element(
   "html",
   [
     [ "head" ],
     [ "body",
       [ [ "div", undef, id => "contents" ] ]
     ],
   ],
   xmlns => "http://www.w3.org/1999/xhtml"
 );
 

User Comments


create_cdata_section

$node = $xml->create_cdata_section( $value )

Returns a CDATA section containing $value.

User Comments


create_text_node

$node = $xml->create_text_node( $value )

Returns a new XML text node containing $value.

User Comments


create_comment

$node = $xml->create_comment( $value )

Returns a new XML comment containing $value.

User Comments


create_document_fragment

$node = $xml->create_document_fragment

Returns a new XML document fragment.

User Comments


Other

User Comments


is

$bool = $xml->is( $node, $type [, $type ... ] )

Returns true if $node is one of the given node types: Document, DocumentFragment, Element, Comment, Text.

User Comments


clone

$node = $xml->clone( $node )

Returns a deep clone of $node. The new node(s) will be owned by this object.

User Comments


clone_node

$node = $xml->clone_node( $node )

Returns a clone of $node only (no children). The new node will be owned by this object.

User Comments


contents_of

$node = $xml->contents_of( $node )

Returns a document fragment containing a copy of all the children of $node.

User Comments


text_contents_of

$string = $xml->text_contents_of( $node )

Returns the concantenated value of all text nodes in $node (or the value of $node if $node is a text node).

User Comments


to_string

$utf8_string = $xml->to_string( $node, %opts )

Serialises and returns the $node as a UTF-8 string.

To generate an XHTML string see EPrints::XHTML.

Options: indent - if true will indent the XML tree

User Comments


dispose

$xml->dispose( $node )

Dispose and free the memory used by $node.

User Comments


COPYRIGHT

User Comments