XML-XSH2
view release on metacpan or search on metacpan
lib/XML/XSH2/LibXMLCompat.pm view on Meta::CPAN
my ($class,$parser,$fh,$encoding)=@_;
$class->init_parser($parser);
my $doc=$parser->parse_sgml_fh($fh,$encoding);
return $doc;
}
sub parse_sgml_string {
my ($class,$parser,$fh,$encoding)=@_;
$class->init_parser($parser);
my $doc=$parser->parse_sgml_string($fh,$encoding);
return $doc;
}
sub parse_fh {
my ($class,$parser,$fh)=@_;
$class->init_parser($parser);
return $parser->parse_fh($fh);
}
sub parse_file {
my ($class,$parser,$file)=@_;
$class->init_parser($parser);
return $parser->parse_file($file);
}
sub is_node {
my ($class,$node)=@_;
return ref($node) && $node->isa('XML::LibXML::Node');
}
sub is_dtd {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_DTD_NODE()
}
sub is_xinclude_start {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_XINCLUDE_START();
}
sub is_xinclude_end {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_XINCLUDE_END();
}
sub is_element {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_ELEMENT_NODE();
}
sub is_attribute {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_ATTRIBUTE_NODE();
}
sub is_text {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_TEXT_NODE();
}
sub is_text_or_cdata {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_TEXT_NODE() || $node->nodeType == XML::LibXML::XML_CDATA_SECTION_NODE();
}
sub is_cdata_section {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_CDATA_SECTION_NODE();
}
sub is_pi {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_PI_NODE();
}
sub is_entity_reference {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_ENTITY_REF_NODE();
}
sub is_document {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_DOCUMENT_NODE() ||
$node->nodeType == XML::LibXML::XML_HTML_DOCUMENT_NODE();
}
sub is_document_fragment {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_DOCUMENT_FRAG_NODE();
}
sub is_comment {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_COMMENT_NODE();
}
sub is_namespace {
my ($class,$node)=@_;
return $node->nodeType == XML::LibXML::XML_NAMESPACE_DECL();
}
sub document_type {
my ($class,$node)=@_;
my $doc=$class->owner_document($node);
if ($doc->nodeType == XML::LibXML::XML_DOCUMENT_NODE) {
return 'xml';
} elsif ($doc->nodeType == XML::LibXML::XML_HTML_DOCUMENT_NODE) {
return 'html';
} else {
return 'unknown';
}
}
sub has_dtd {
my ($class,$doc)=@_;
foreach my $node ($doc->childNodes()) {
if ($node->nodeType == XML::LibXML::XML_DTD_NODE()) {
return 1;
}
}
return 0;
}
sub get_dtd {
my ($class,$doc,$quiet)=@_;
( run in 0.504 second using v1.01-cache-2.11-cpan-39bf76dae61 )