xml libxml sax builder
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 2060
XML::LibXML::SAX::Builder 0.14
Bigtop::Docs::Tutorial is a simple case study of building a web app with bigtop. more>>
Bigtop::Docs::Tutorial is a simple case study of building a web app with bigtop.
Note on What to Read
This document explains how to build an app of moderate complexity by typing in a bigtop file. Since it was written, tentmaker has come along. It is a browser delivered editor for bigtop files, see Bigtop::Docs::TentTut for details.
If you need a simpler example than the one shown here, consider the one table address book example in Gantry::Docs::Tutorial.
Driving Idea
Many (not all) applications are mostly data managers. That is, they are really intermediaries between users and various tables in a database. A bigtop file is meant to be a single place to describe all (or practically all) facits of the data in an application. This includes at least:
The name and special features of each controller.
- The name of each table in the database.
- A description of each column (field) in each table in the database. This includes at least:
its name and SQL type
- the label the user sees for it when it appears on the screen
- what type of html form element the user uses to enter or update it
- how the data is validated and filtered on its way into and out of the database (filtering not yet supported)
- which table the field refers to if it is a foreign key
- etc.
All of these things, and more, are described in a Bigtop file. That file can be given to bigtop to build the application. Once it is built, it can be safely rebuilt so that only the generated bits are changed (this is accomplished by maintaining a clean separation between generated and hand edited files, and by config options in the bigtop file).
Notice that nothing in the above has committed you or me to any particular web application framework, data modeling scheme, templating system, or web server. Bigtop is neutral (think big tent), at least for Perl apps delivered via the web.
<<lessNote on What to Read
This document explains how to build an app of moderate complexity by typing in a bigtop file. Since it was written, tentmaker has come along. It is a browser delivered editor for bigtop files, see Bigtop::Docs::TentTut for details.
If you need a simpler example than the one shown here, consider the one table address book example in Gantry::Docs::Tutorial.
Driving Idea
Many (not all) applications are mostly data managers. That is, they are really intermediaries between users and various tables in a database. A bigtop file is meant to be a single place to describe all (or practically all) facits of the data in an application. This includes at least:
The name and special features of each controller.
- The name of each table in the database.
- A description of each column (field) in each table in the database. This includes at least:
its name and SQL type
- the label the user sees for it when it appears on the screen
- what type of html form element the user uses to enter or update it
- how the data is validated and filtered on its way into and out of the database (filtering not yet supported)
- which table the field refers to if it is a foreign key
- etc.
All of these things, and more, are described in a Bigtop file. That file can be given to bigtop to build the application. Once it is built, it can be safely rebuilt so that only the generated bits are changed (this is accomplished by maintaining a clean separation between generated and hand edited files, and by config options in the bigtop file).
Notice that nothing in the above has committed you or me to any particular web application framework, data modeling scheme, templating system, or web server. Bigtop is neutral (think big tent), at least for Perl apps delivered via the web.
Download (0.30MB)
Added: 2006-08-31 License: Perl Artistic License Price:
663 downloads
XML::LibXML::Reader 1.63
XML::LibXML::Reader is a Perl interface to libxml2 pull parser. more>>
XML::LibXML::Reader is a Perl interface to libxml2 pull parser.
SYNOPSIS
use XML::LibXML::Reader;
$reader = new XML::LibXML::Reader("file.xml")
or die "cannot read file.xmln";
while ($reader->read) {
processNode($reader);
}
sub processNode {
$reader = shift;
printf "%d %d %s %dn", ($reader->depth,
$reader->nodeType,
$reader->name,
$reader->isEmptyElement);
}
or
$reader = new XML::LibXML::Reader("file.xml")
or die "cannot read file.xmln";
$reader->preservePattern(//table/tr);
$reader->finish;
print $reader->document->toString(1);
This is a perl interface to libxml2s pull-parser implementation xmlTextReader http://xmlsoft.org/html/libxml-xmlreader.html. This feature requires at least libxml2-2.6.21. Pull-parser (StAX in Java, XmlReader in C#) use an iterator approach to parse a xml-file. They are easier to program than event-based parser (SAX) and much more lightweight than tree-based parser (DOM), which load the complete tree into memory.
The Reader acts as a cursor going forward on the document stream and stopping at each node in the way. At every point DOM-like methods of the Reader object allow to examine the current node (name, namespace, attributes, etc.)
The users code keeps control of the progress and simply calls the read() function repeatedly to progress to the next node in the document order. Other functions provide means for skipping complete sub-trees, or nodes until a specific element, etc.
At every time, only a very limited portion of the document is kept in the memory, which makes the API more memory-efficient than using DOM. However, it is also possible to mix Reader with DOM. At every point the user may copy the current node (optionally expanded into a complete sub-tree) from the processed document to another DOM tree, or to instruct the Reader to collect sub-document in form of a DOM tree consisting of selected nodes.
Reader API also supports namespaces, xml:base, entity handling, and DTD validation. Schema and RelaxNG validation support will probably be added in some later revision of the Perl interface.
The naming of methods compared to libxml2 and C# XmlTextReader has been changed slightly to match the conventions of XML::LibXML. Some functions have been changed or added with respect to the C interface.
<<lessSYNOPSIS
use XML::LibXML::Reader;
$reader = new XML::LibXML::Reader("file.xml")
or die "cannot read file.xmln";
while ($reader->read) {
processNode($reader);
}
sub processNode {
$reader = shift;
printf "%d %d %s %dn", ($reader->depth,
$reader->nodeType,
$reader->name,
$reader->isEmptyElement);
}
or
$reader = new XML::LibXML::Reader("file.xml")
or die "cannot read file.xmln";
$reader->preservePattern(//table/tr);
$reader->finish;
print $reader->document->toString(1);
This is a perl interface to libxml2s pull-parser implementation xmlTextReader http://xmlsoft.org/html/libxml-xmlreader.html. This feature requires at least libxml2-2.6.21. Pull-parser (StAX in Java, XmlReader in C#) use an iterator approach to parse a xml-file. They are easier to program than event-based parser (SAX) and much more lightweight than tree-based parser (DOM), which load the complete tree into memory.
The Reader acts as a cursor going forward on the document stream and stopping at each node in the way. At every point DOM-like methods of the Reader object allow to examine the current node (name, namespace, attributes, etc.)
The users code keeps control of the progress and simply calls the read() function repeatedly to progress to the next node in the document order. Other functions provide means for skipping complete sub-trees, or nodes until a specific element, etc.
At every time, only a very limited portion of the document is kept in the memory, which makes the API more memory-efficient than using DOM. However, it is also possible to mix Reader with DOM. At every point the user may copy the current node (optionally expanded into a complete sub-tree) from the processed document to another DOM tree, or to instruct the Reader to collect sub-document in form of a DOM tree consisting of selected nodes.
Reader API also supports namespaces, xml:base, entity handling, and DTD validation. Schema and RelaxNG validation support will probably be added in some later revision of the Perl interface.
The naming of methods compared to libxml2 and C# XmlTextReader has been changed slightly to match the conventions of XML::LibXML. Some functions have been changed or added with respect to the C interface.
Download (0.25MB)
Added: 2007-06-15 License: Perl Artistic License Price:
864 downloads
XML::XPath::Builder 1.13
XML::XPath::Builder is a SAX handler for building an XPath tree. more>>
XML::XPath::Builder is a SAX handler for building an XPath tree.
SYNOPSIS
use AnySAXParser;
use XML::XPath::Builder;
$builder = XML::XPath::Builder->new();
$parser = AnySAXParser->new( Handler => $builder );
$root_node = $parser->parse( Source => [SOURCE] );
XML::XPath::Builder is a SAX handler for building an XML::XPath tree.
XML::XPath::Builder is used by creating a new instance of XML::XPath::Builder and providing it as the Handler for a SAX parser. Calling `parse() on the SAX parser will return the root node of the tree built from that parse.
<<lessSYNOPSIS
use AnySAXParser;
use XML::XPath::Builder;
$builder = XML::XPath::Builder->new();
$parser = AnySAXParser->new( Handler => $builder );
$root_node = $parser->parse( Source => [SOURCE] );
XML::XPath::Builder is a SAX handler for building an XML::XPath tree.
XML::XPath::Builder is used by creating a new instance of XML::XPath::Builder and providing it as the Handler for a SAX parser. Calling `parse() on the SAX parser will return the root node of the tree built from that parse.
Download (0.039MB)
Added: 2006-08-31 License: Perl Artistic License Price:
1149 downloads
XML::LibXML::Parser 1.63
XML::LibXML::Parser is a Perl module to parse XML Data with XML::LibXML. more>>
XML::LibXML::Parser is a Perl module to parse XML Data with XML::LibXML.
SYNOPSIS
$parser = XML::LibXML->new();
$doc = $parser->parse_file( $xmlfilename );
$doc = $parser->parse_fh( $io_fh );
$doc = $parser->parse_string( $xmlstring);
$doc = $parser->parse_html_file( $htmlfile, %opts );
$doc = $parser->parse_html_fh( $io_fh, %opts );
$doc = $parser->parse_html_string( $htmlstring, %opts );
$fragment = $parser->parse_balanced_chunk( $wbxmlstring );
$fragment = $parser->parse_xml_chunk( $wbxmlstring );
$parser->process_xincludes( $doc );
$parser->processXIncludes( $doc );
$parser->parse_chunk($string, $terminate);
$parser->start_push();
$parser->push(@data);
$doc = $parser->finish_push( $recover );
$parser->validation(1);
$parser->recover(1);
$parser->recover_silently(1);
$parser->expand_entities(0);
$parser->keep_blanks(0);
$parser->pedantic_parser(1);
$parser->line_numbers(1);
$parser->load_ext_dtd(1);
$parser->complete_attributes(1);
$parser->expand_xinclude(1);
$parser->load_catalog( $catalog_file );
$parser->base_uri( $your_base_uri );
$parser->gdome_dom(1);
$parser->clean_namespaces( 1 );
$parser->no_network(1);
SYNOPSIS
use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc = $parser->parse_string(parse_fh( $xmlstream );
my $fragment = $parser->parse_xml_chunk( $xml_wb_chunk );
<<lessSYNOPSIS
$parser = XML::LibXML->new();
$doc = $parser->parse_file( $xmlfilename );
$doc = $parser->parse_fh( $io_fh );
$doc = $parser->parse_string( $xmlstring);
$doc = $parser->parse_html_file( $htmlfile, %opts );
$doc = $parser->parse_html_fh( $io_fh, %opts );
$doc = $parser->parse_html_string( $htmlstring, %opts );
$fragment = $parser->parse_balanced_chunk( $wbxmlstring );
$fragment = $parser->parse_xml_chunk( $wbxmlstring );
$parser->process_xincludes( $doc );
$parser->processXIncludes( $doc );
$parser->parse_chunk($string, $terminate);
$parser->start_push();
$parser->push(@data);
$doc = $parser->finish_push( $recover );
$parser->validation(1);
$parser->recover(1);
$parser->recover_silently(1);
$parser->expand_entities(0);
$parser->keep_blanks(0);
$parser->pedantic_parser(1);
$parser->line_numbers(1);
$parser->load_ext_dtd(1);
$parser->complete_attributes(1);
$parser->expand_xinclude(1);
$parser->load_catalog( $catalog_file );
$parser->base_uri( $your_base_uri );
$parser->gdome_dom(1);
$parser->clean_namespaces( 1 );
$parser->no_network(1);
SYNOPSIS
use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc = $parser->parse_string(parse_fh( $xmlstream );
my $fragment = $parser->parse_xml_chunk( $xml_wb_chunk );
Download (0.25MB)
Added: 2007-06-15 License: Perl Artistic License Price:
863 downloads
XML::LibXML::Node 1.61003
XML::LibXML::Node is an abstract base class of XML::LibXML nodes. more>>
XML::LibXML::Node is an abstract base class of XML::LibXML nodes.
SYNOPSIS
$name = $node->nodeName;
$node->setNodeName( $newName );
$bool = $node->isSameNode( $other_node );
$bool = $node->isEqual( $other_node );
$content = $node->nodeValue;
$content = $node->textContent;
$type = $node->nodeType;
$node->unbindNode();
$childnode = $node->removeChild( $childnode );
$oldnode = $node->replaceChild( $newNode, $oldNode );
$node->replaceNode($newNode);
$childnode = $node->appendChild( $childnode );
$childnode = $node->addChild( $chilnode );
$node = $parent->addNewChild( $nsURI, $name );
$node->addSibling($newNode);
$newnode =$node->cloneNode( $deep );
$parentnode = $node->parentNode;
$nextnode = $node->nextSibling();
$prevnode = $node->previousSibling();
$boolean = $node->hasChildNodes();
$childnode = $node->firstChild;
$childnode = $node->lastChild;
$documentnode = $node->ownerDocument;
$node = $node->getOwner;
$node->setOwnerDocument( $doc );
$node->insertBefore( $newNode, $refNode );
$node->insertAfter( $newNode, $refNode );
@nodes = $node->findnodes( $xpath_expression );
$result = $node->find( $xpath );
print $node->findvalue( $xpath );
@childnodes = $node->childNodes;
$xmlstring = $node->toString($format,$docencoding);
$c14nstring = $node->toString($with_comments, $xpath_expression);
$str = $doc->serialze($format);
$c14nstr = $doc->serialize_c14n($comment_flag,$xpath);
$localname = $node->localname;
$nameprefix = $node->prefix;
$uri = $node->namespaceURI();
$boolean = $node->hasAttributes();
@attributelist = $node->attributes();
$URI = $node->lookupNamespaceURI( $prefix );
$prefix = $node->lookupNamespacePrefix( $URI );
$iter = $node->iterator;
$node->normalize;
@nslist = $node->getNamespaces;
$node->removeChildNodes();
$node->nodePath();
$lineno = $node->line_number();
XML::LibXML::Node defines functions that are common to all Node Types. A LibXML::Node should never be created standalone, but as an instance of a high level class such as LibXML::Element or LibXML::Text. The class itself should provide only common functionality. In XML::LibXML each node is part either of a document or a document-fragment. Because of this there is no node without a parent. This may causes confusion with "unbound" nodes.
<<lessSYNOPSIS
$name = $node->nodeName;
$node->setNodeName( $newName );
$bool = $node->isSameNode( $other_node );
$bool = $node->isEqual( $other_node );
$content = $node->nodeValue;
$content = $node->textContent;
$type = $node->nodeType;
$node->unbindNode();
$childnode = $node->removeChild( $childnode );
$oldnode = $node->replaceChild( $newNode, $oldNode );
$node->replaceNode($newNode);
$childnode = $node->appendChild( $childnode );
$childnode = $node->addChild( $chilnode );
$node = $parent->addNewChild( $nsURI, $name );
$node->addSibling($newNode);
$newnode =$node->cloneNode( $deep );
$parentnode = $node->parentNode;
$nextnode = $node->nextSibling();
$prevnode = $node->previousSibling();
$boolean = $node->hasChildNodes();
$childnode = $node->firstChild;
$childnode = $node->lastChild;
$documentnode = $node->ownerDocument;
$node = $node->getOwner;
$node->setOwnerDocument( $doc );
$node->insertBefore( $newNode, $refNode );
$node->insertAfter( $newNode, $refNode );
@nodes = $node->findnodes( $xpath_expression );
$result = $node->find( $xpath );
print $node->findvalue( $xpath );
@childnodes = $node->childNodes;
$xmlstring = $node->toString($format,$docencoding);
$c14nstring = $node->toString($with_comments, $xpath_expression);
$str = $doc->serialze($format);
$c14nstr = $doc->serialize_c14n($comment_flag,$xpath);
$localname = $node->localname;
$nameprefix = $node->prefix;
$uri = $node->namespaceURI();
$boolean = $node->hasAttributes();
@attributelist = $node->attributes();
$URI = $node->lookupNamespaceURI( $prefix );
$prefix = $node->lookupNamespacePrefix( $URI );
$iter = $node->iterator;
$node->normalize;
@nslist = $node->getNamespaces;
$node->removeChildNodes();
$node->nodePath();
$lineno = $node->line_number();
XML::LibXML::Node defines functions that are common to all Node Types. A LibXML::Node should never be created standalone, but as an instance of a high level class such as LibXML::Element or LibXML::Text. The class itself should provide only common functionality. In XML::LibXML each node is part either of a document or a document-fragment. Because of this there is no node without a parent. This may causes confusion with "unbound" nodes.
Download (0.25MB)
Added: 2006-10-17 License: Perl Artistic License Price:
1102 downloads
XML::LibXML::DOM 1.58
XML::LibXML::DOM is a XML::LibXML DOM Implementation. more>>
XML::LibXML::DOM is a XML::LibXML DOM Implementation.
XML::LibXML provides an lightwight interface to modify a node of the document tree generated by the XML::LibXML parser. This interface follows as far as possible the DOM Level 3 specification. Additionally to the specified functions the XML::LibXML supports some functions that are more handy to use in the perl environment.
One also has to remember, that XML::LibXML is an interface to libxml2 nodes which actually reside on the C-Level of XML::LibXML. This means each node is a reference to a structure different than a perl hash or array. The only way to access these structures values is through the DOM interface provided by XML::LibXML. This also means, that one cant simply inherit a XML::LibXML node and add new member variables as they were hash keys.
The DOM interface of XML::LibXML does not intend to implement a full DOM interface as it is done by XML::GDOME and used for full featured application. Moreover, it offers an simple way to build or modify documents that are created by XML::LibXMLs parser.
Another target of the XML::LibXML interface is to make the interfaces of libxml2 available to the perl community. This includes also some workarounds to some features where libxml2 assumes more control over the C-Level that most perl users dont have.
One of the most important parts of the XML::LibXML DOM interface is, that the interfaces try do follow the DOM Level 3 specification rather strictly. This means the interface functions are named as the DOM specification says and not what widespread Java interfaces claim to be standard. Although there are several functions that have only a singular interface that conforms to the DOM spec XML::LibXML provides an additional Java style alias interface.
Also there are some function interfaces left over from early stages of XML::LibXML for compatibility reasons. These interfaces are for compatibility reasons only. They might disappear in one of the future versions of XML::LibXML, so a user is requested to switch over to the official functions.
More recent versions of perl (e.g. 5.6.1 or higher) support special flags to disinguish between UTF8 and so called binary data. XML::LibXML provides for these versions functionality to make efficient use of these flags: If a document has set an encoding other than UTF8 all strings that are not already in UTF8 are implicitly encoded from the document encoding to UTF8. On output these strings are commonly returned as UTF8 unless a user does request explicitly the original (aka. document) encoding.
Older version of perl (such as 5.00503 or less) do not support these flags. If XML::LibXML is build for these versions, all strings have to get encoded to UTF8 manualy before they are passed to any DOM functions.
NOTE: XML::LibXMLs magic encoding may not work on all plattforms. Some platforms are known to have a broken iconv(), which is partly used by libxml2. To test if your platform works correctly with your language encoding, build a simple document in the particular encoding and try to parse it with XML::LibXML. If your document gets parsed with out causing any segmentation faults, bus errors or whatever your OS throws. An example for such a test can be found in test 19encoding.t of the distribution.
Namespaces and XML::LibXMLs DOM implementation
XML::LibXMLs DOM implementation follows the DOM implementation of libxml2. This is important to know if namespaces are used. Namespaces cannot be declared on an document node. This is basicly because XPath doesnt know about document nodes. Therefore namespaces have to be declared on element nodes.
This can happen explicitly by using XML::LibXML:Elements setNamespace() function or more or less implicitly by using XML::LibXML::Documents createElementNS() or createAttributeNS() function. If the a namespace is not declared on the documentElement, the namespace will be localy declared for the newly created node. In case of Attributes this may look a bit confusing, since these nodes cannot have namespace declarations itself. In this case the namespace in internally applied to the attribute and later declared on the node the attribute is appended to.
<<lessXML::LibXML provides an lightwight interface to modify a node of the document tree generated by the XML::LibXML parser. This interface follows as far as possible the DOM Level 3 specification. Additionally to the specified functions the XML::LibXML supports some functions that are more handy to use in the perl environment.
One also has to remember, that XML::LibXML is an interface to libxml2 nodes which actually reside on the C-Level of XML::LibXML. This means each node is a reference to a structure different than a perl hash or array. The only way to access these structures values is through the DOM interface provided by XML::LibXML. This also means, that one cant simply inherit a XML::LibXML node and add new member variables as they were hash keys.
The DOM interface of XML::LibXML does not intend to implement a full DOM interface as it is done by XML::GDOME and used for full featured application. Moreover, it offers an simple way to build or modify documents that are created by XML::LibXMLs parser.
Another target of the XML::LibXML interface is to make the interfaces of libxml2 available to the perl community. This includes also some workarounds to some features where libxml2 assumes more control over the C-Level that most perl users dont have.
One of the most important parts of the XML::LibXML DOM interface is, that the interfaces try do follow the DOM Level 3 specification rather strictly. This means the interface functions are named as the DOM specification says and not what widespread Java interfaces claim to be standard. Although there are several functions that have only a singular interface that conforms to the DOM spec XML::LibXML provides an additional Java style alias interface.
Also there are some function interfaces left over from early stages of XML::LibXML for compatibility reasons. These interfaces are for compatibility reasons only. They might disappear in one of the future versions of XML::LibXML, so a user is requested to switch over to the official functions.
More recent versions of perl (e.g. 5.6.1 or higher) support special flags to disinguish between UTF8 and so called binary data. XML::LibXML provides for these versions functionality to make efficient use of these flags: If a document has set an encoding other than UTF8 all strings that are not already in UTF8 are implicitly encoded from the document encoding to UTF8. On output these strings are commonly returned as UTF8 unless a user does request explicitly the original (aka. document) encoding.
Older version of perl (such as 5.00503 or less) do not support these flags. If XML::LibXML is build for these versions, all strings have to get encoded to UTF8 manualy before they are passed to any DOM functions.
NOTE: XML::LibXMLs magic encoding may not work on all plattforms. Some platforms are known to have a broken iconv(), which is partly used by libxml2. To test if your platform works correctly with your language encoding, build a simple document in the particular encoding and try to parse it with XML::LibXML. If your document gets parsed with out causing any segmentation faults, bus errors or whatever your OS throws. An example for such a test can be found in test 19encoding.t of the distribution.
Namespaces and XML::LibXMLs DOM implementation
XML::LibXMLs DOM implementation follows the DOM implementation of libxml2. This is important to know if namespaces are used. Namespaces cannot be declared on an document node. This is basicly because XPath doesnt know about document nodes. Therefore namespaces have to be declared on element nodes.
This can happen explicitly by using XML::LibXML:Elements setNamespace() function or more or less implicitly by using XML::LibXML::Documents createElementNS() or createAttributeNS() function. If the a namespace is not declared on the documentElement, the namespace will be localy declared for the newly created node. In case of Attributes this may look a bit confusing, since these nodes cannot have namespace declarations itself. In this case the namespace in internally applied to the attribute and later declared on the node the attribute is appended to.
Download (0.16MB)
Added: 2006-07-17 License: GPL (GNU General Public License) Price:
1198 downloads
OPEN BEXI HTML Builder 1.6
OPEN BEXI HTML Builder is a WYSIWYG HTML editor. more>>
OPEN BEXI HTML Builder is a WYSIWYG HTML editor which allows you to create Web pages and generate HTML code from your browser without any HTML knowledge.
It lets you create, update, and remove HTML components. OPEN BEXI HTML Builder is suitable for beginners and experts.
<<lessIt lets you create, update, and remove HTML components. OPEN BEXI HTML Builder is suitable for beginners and experts.
Download (1.8MB)
Added: 2007-04-05 License: GPL (GNU General Public License) Price:
939 downloads
Sax Filter 1.4
Sax Filter is a modular set of filters that can be used to process XML documents via Javas SAX support. more>>
Sax Filter is a modular set of filters that can be used to process XML documents via Javas SAX support.
Currently, the filters only process content (the ContentHandler interface).
<<lessCurrently, the filters only process content (the ContentHandler interface).
Download (0.048MB)
Added: 2006-12-24 License: GPL (GNU General Public License) Price:
1035 downloads
XML::LibXML::Enhanced 0.01
XML::LibXML::Enhanced is a Perl module that adds convenience methods to XML::LibXML and LibXSLT. more>>
XML::LibXML::Enhanced is a Perl module that adds convenience methods to XML::LibXML and LibXSLT.
SYNOPSIS
use XML::LibXML::Enhanced;
my $xml = XML::LibXML::Singleton->instance;
my $xsl = XML::LibXSLT::Singleton->instance;
my $doc = $xml->parse_xml_string(" ");
my $root = $doc->getDocumentElement;
$root->appendHash({ name => Michael, email => mjs@beebo.org });
<<lessSYNOPSIS
use XML::LibXML::Enhanced;
my $xml = XML::LibXML::Singleton->instance;
my $xsl = XML::LibXSLT::Singleton->instance;
my $doc = $xml->parse_xml_string(" ");
my $root = $doc->getDocumentElement;
$root->appendHash({ name => Michael, email => mjs@beebo.org });
Download (0.007MB)
Added: 2006-09-19 License: Perl Artistic License Price:
1132 downloads
XML::LibXML::XPathContext 1.63
XML::LibXML::XPathContext is an XPath evaluation. more>>
XML::LibXML::XPathContext is an XPath evaluation.
SYNOPSIS
my $xpc = XML::LibXML::XPathContext->new();
my $xpc = XML::LibXML::XPathContext->new($node);
$xpc->registerNs($prefix, $namespace_uri)
$xpc->unregisterNs($prefix)
$uri = $xpc->lookupNs($prefix)
$xpc->registerVarLookupFunc($callback, $data)
$data = $xpc->getVarLookupData();
$callback = $xpc->getVarLookupFunc();
$xpc->unregisterVarLookupFunc($name);
$xpc->registerFunctionNS($name, $uri, $callback)
$xpc->unregisterFunctionNS($name, $uri)
$xpc->registerFunction($name, $callback)
$xpc->unregisterFunction($name)
@nodes = $xpc->findnodes($xpath)
@nodes = $xpc->findnodes($xpath, $context_node )
$nodelist = $xpc->findnodes($xpath, $context_node )
$object = $xpc->find($xpath )
$object = $xpc->find($xpath, $context_node )
$value = $xpc->findvalue($xpath )
$value = $xpc->findvalue($xpath, $context_node )
$xpc->setContextNode($node)
my $node = $xpc->getContextNode;
$xpc->setContextPosition($position)
my $position = $xpc->getContextPosition;
$xpc->setContextSize($size)
my $size = $xpc->getContextSize;
$xpc->setContextNode($node)
The XML::LibXML::XPathContext class provides an almost complete interface to libxml2s XPath implementation. With XML::LibXML::XPathContext is is possible to evaluate XPath expressions in the context of arbitrary node, context size, and context position, with a user-defined namespace-prefix mapping, custom XPath functions written in Perl, and even a custom XPath variable resolver.
<<lessSYNOPSIS
my $xpc = XML::LibXML::XPathContext->new();
my $xpc = XML::LibXML::XPathContext->new($node);
$xpc->registerNs($prefix, $namespace_uri)
$xpc->unregisterNs($prefix)
$uri = $xpc->lookupNs($prefix)
$xpc->registerVarLookupFunc($callback, $data)
$data = $xpc->getVarLookupData();
$callback = $xpc->getVarLookupFunc();
$xpc->unregisterVarLookupFunc($name);
$xpc->registerFunctionNS($name, $uri, $callback)
$xpc->unregisterFunctionNS($name, $uri)
$xpc->registerFunction($name, $callback)
$xpc->unregisterFunction($name)
@nodes = $xpc->findnodes($xpath)
@nodes = $xpc->findnodes($xpath, $context_node )
$nodelist = $xpc->findnodes($xpath, $context_node )
$object = $xpc->find($xpath )
$object = $xpc->find($xpath, $context_node )
$value = $xpc->findvalue($xpath )
$value = $xpc->findvalue($xpath, $context_node )
$xpc->setContextNode($node)
my $node = $xpc->getContextNode;
$xpc->setContextPosition($position)
my $position = $xpc->getContextPosition;
$xpc->setContextSize($size)
my $size = $xpc->getContextSize;
$xpc->setContextNode($node)
The XML::LibXML::XPathContext class provides an almost complete interface to libxml2s XPath implementation. With XML::LibXML::XPathContext is is possible to evaluate XPath expressions in the context of arbitrary node, context size, and context position, with a user-defined namespace-prefix mapping, custom XPath functions written in Perl, and even a custom XPath variable resolver.
Download (0.25MB)
Added: 2007-07-31 License: Perl Artistic License Price:
815 downloads
XML::SAX::Simple 0.02
XML::SAX::Simple is a SAX version of XML::Simple. more>>
XML::SAX::Simple is a SAX version of XML::Simple.
SYNOPSIS
use XML::SAX::Simple qw(XMLin XMLout);
my $hash = XMLin("foo.xml");
XML::SAX::Simple is a very simple version of XML::Simple but for SAX. It can be used as a complete drop-in replacement for XML::Simple.
See the documentation for XML::Simple (which is required for this module to work) for details.
<<lessSYNOPSIS
use XML::SAX::Simple qw(XMLin XMLout);
my $hash = XMLin("foo.xml");
XML::SAX::Simple is a very simple version of XML::Simple but for SAX. It can be used as a complete drop-in replacement for XML::Simple.
See the documentation for XML::Simple (which is required for this module to work) for details.
Download (0.016MB)
Added: 2006-09-08 License: Perl Artistic License Price:
1141 downloads
XML::SAX::Writer 0.50
XML::SAX::Writer is a Perl module with SAX2 Writer. more>>
XML::SAX::Writer is a Perl module with SAX2 Writer.
SYNOPSIS
use XML::SAX::Writer;
use XML::SAX::SomeDriver;
my $w = XML::SAX::Writer->new;
my $d = XML::SAX::SomeDriver->new(Handler => $w);
$d->parse(some options...);
Why yet another XML Writer ?
A new XML Writer was needed to match the SAX2 effort because quite naturally no existing writer understood SAX2. My first intention had been to start patching XML::Handler::YAWriter as it had previously been my favourite writer in the SAX1 world.
However the more I patched it the more I realised that what I thought was going to be a simple patch (mostly adding a few event handlers and changing the attribute syntax) was turning out to be a rewrite due to various ideas Id been collecting along the way. Besides, I couldnt find a way to elegantly make it work with SAX2 without breaking the SAX1 compatibility which people are probably still using. There are of course ways to do that, but most require user interaction which is something I wanted to avoid.
So in the end there was a new writer. I think its in fact better this way as it helps keep SAX1 and SAX2 separated.
<<lessSYNOPSIS
use XML::SAX::Writer;
use XML::SAX::SomeDriver;
my $w = XML::SAX::Writer->new;
my $d = XML::SAX::SomeDriver->new(Handler => $w);
$d->parse(some options...);
Why yet another XML Writer ?
A new XML Writer was needed to match the SAX2 effort because quite naturally no existing writer understood SAX2. My first intention had been to start patching XML::Handler::YAWriter as it had previously been my favourite writer in the SAX1 world.
However the more I patched it the more I realised that what I thought was going to be a simple patch (mostly adding a few event handlers and changing the attribute syntax) was turning out to be a rewrite due to various ideas Id been collecting along the way. Besides, I couldnt find a way to elegantly make it work with SAX2 without breaking the SAX1 compatibility which people are probably still using. There are of course ways to do that, but most require user interaction which is something I wanted to avoid.
So in the end there was a new writer. I think its in fact better this way as it helps keep SAX1 and SAX2 separated.
Download (0.012MB)
Added: 2006-09-21 License: Perl Artistic License Price:
1128 downloads
XML::SAX 0.14
XML::SAX is a simple API for XML. more>>
XML::SAX is a simple API for XML.
SYNOPSIS
use XML::SAX;
# get a list of known parsers
my $parsers = XML::SAX->parsers();
# add/update a parser
XML::SAX->add_parser(q(XML::SAX::PurePerl));
# remove parser
XML::SAX->remove_parser(q(XML::SAX::Foodelberry));
# save parsers
XML::SAX->save_parsers();
XML::SAX is a SAX parser access API for Perl. It includes classes and APIs required for implementing SAX drivers, along with a factory class for returning any SAX parser installed on the users system.
<<lessSYNOPSIS
use XML::SAX;
# get a list of known parsers
my $parsers = XML::SAX->parsers();
# add/update a parser
XML::SAX->add_parser(q(XML::SAX::PurePerl));
# remove parser
XML::SAX->remove_parser(q(XML::SAX::Foodelberry));
# save parsers
XML::SAX->save_parsers();
XML::SAX is a SAX parser access API for Perl. It includes classes and APIs required for implementing SAX drivers, along with a factory class for returning any SAX parser installed on the users system.
Download (0.057MB)
Added: 2006-09-08 License: GPL (GNU General Public License) Price:
1142 downloads
XML::SAX2Perl 0.08
XML::SAX2Perl is a Perl module to translate Perl SAX methods to Java/CORBA style methods. more>>
XML::SAX2Perl is a Perl module to translate Perl SAX methods to Java/CORBA style methods.
SYNOPSIS
use XML::Perl2SAX;
$perl2sax = XML::Perl2SAX(handler => $java_style_handler);
XML::Perl2SAX is a SAX filter that translates Perl style SAX methods to Java/CORBA style method calls. This module performs the inverse operation from XML::SAX2Perl.
Perl2SAX is a Perl SAX document handler. The `new method takes a `handler argument that is a Java/CORBA style handler that the new Perl2SAX instance will call. The SAX interfaces are defined at < http://www.megginson.com/SAX/ >.
<<lessSYNOPSIS
use XML::Perl2SAX;
$perl2sax = XML::Perl2SAX(handler => $java_style_handler);
XML::Perl2SAX is a SAX filter that translates Perl style SAX methods to Java/CORBA style method calls. This module performs the inverse operation from XML::SAX2Perl.
Perl2SAX is a Perl SAX document handler. The `new method takes a `handler argument that is a Java/CORBA style handler that the new Perl2SAX instance will call. The SAX interfaces are defined at < http://www.megginson.com/SAX/ >.
Download (0.063MB)
Added: 2007-06-05 License: Perl Artistic License Price:
871 downloads
Java Gui Builder 0.6.5a
Java Gui Builder it decouples your GUI building code from the rest of your application using XML. more>>
The Java Gui Builder program is designed to decouple the GUI building code from the rest of the application code, without hand-writing code.
It allows one to describe the layout of windows and controls using an XML file. A full DTD was written to allow on-the-fly validation.
Using an XML file to describe GUI components allows users the flexibility to rewrite their windows so that they suit their needs, without opening up the innards of the program to the users.
Java Gui Builder can run on any Swing enabled J2SE platform. JGB was tested against Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_08-b03) and Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01). If you want to build JGB, you will need J2SE 1.4 or better. It is not possible to build on 1.3, but can be used on 1.3.
<<lessIt allows one to describe the layout of windows and controls using an XML file. A full DTD was written to allow on-the-fly validation.
Using an XML file to describe GUI components allows users the flexibility to rewrite their windows so that they suit their needs, without opening up the innards of the program to the users.
Java Gui Builder can run on any Swing enabled J2SE platform. JGB was tested against Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_08-b03) and Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01). If you want to build JGB, you will need J2SE 1.4 or better. It is not possible to build on 1.3, but can be used on 1.3.
Download (0.68MB)
Added: 2005-04-18 License: GPL (GNU General Public License) Price:
3156 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above xml libxml sax builder search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed