Xacobeo::Document(3pm)
NAME
Xacobeo::Document - An XML document and its related information.
SYNOPSIS
use Xacobeo::Document;
my $document = Xacobeo::Document->new_from_file('file.xml', 'xml');
my $namespaces = $document->get_namespaces(); # Hashref
while (my ($uri, $prefix) = each %{ $namespaces }) {
printf "%-5s: %s\n", $prefix, $uri;
}
my $nodes = $document->find('/x:html//x:a[@href]');
foreach my $node ($nodes->get_nodelist) {
print "Got node ", $node->name, "\n";
}
$document->validate('/x:html//x:a[@href]') or die "Invalid XPath expression";
DESCRIPTION
This class wraps an XML document with its corresponding meta
information (namespaces, XPath context, document node, etc).
It inherits from Glib::Object.
PROPERTIES
- The following properties are defined:
- source
- The source of the document. In most cases this will be a path or an URI pointing to the document.
- type
- The type of document 'xml' or 'html'.
- documentNode
- The document's main node (an instance of XML::LibXML::Node).
- xpath
- The XPath conext to be used with the document.
- namespaces
- An hashref with the namespaces registered in the document.
METHODS
- The package defines the following methods:
- new_from_file
- Creates a new instance from a file (an URI should also be valid).
- Parameters:
$source: the source of the document, this can be a filename or an URI. $type: the type of document: C<xml> or C<html>. - new_from_string
- Creates a new instance from a string.
- Parameters:
$content: the contents of the document.
$type: the type of document: C<xml> or C<html>. - empty
- Returns an empty document.
- source
- The source of the document: most likely a file path or an URI.
- type
- The type of document: xml or html.
- namespaces
- Returns the namespaces declared in the document. The namespaces are
returned in a hashref where the URIs are used as a key and the prefix
as a value. - documentNode
- Returns the document's node (an instance of XML::LibXML::Document).
- xpath
- Returns the XPath context (an instance of XML::LibXML::XPathContext)
that includes the namespaces declared in the document. This is the
context used to execute all XPath queries. - find
- Runs the given XPath query on the document and returns the results. The
results could be a node list or a single value like a boolean, a number
or a scalar if an expression is passed. This method always return its
values in scalar context. - This method croaks if the expression can't be evaluated.
- Parameters:
$xpath: the XPath expression to execute. - validate
- Validates the syntax of the given XPath query. The syntax is validated
within a context that has the same namespaces as the ones defined in
the current XML document. - NOTE: This method can't validate if undefined functions or variables are used.
- Parameters:
$xpath: the XPath expression to validate. - get_prefixed_name
- Returns the node name by prefixing it with our prefixes in the case
where namespaces are used.
AUTHORS
Emmanuel Rodriguez <potyl@cpan.org>.
COPYRIGHT AND LICENSE
Copyright (C) 2008,2009 by Emmanuel Rodriguez.
- This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself, either Perl version 5.8.8 or, at
your option, any later version of Perl 5 you may have available.