SPVM-Eg
view release on metacpan or search on metacpan
lib/SPVM/Eg/Node/Document.spvm view on Meta::CPAN
}
elsif ($tag_name eq "xmp") {
$element = Eg::Node::Element::HTML->new({owner_document => $self, node_name => $tag_name});
}
else {
$element = Eg::Node::Element::HTML::Unknown->new({owner_document => $self, node_name => $tag_name});
}
return $element;
}
method create_element_ns : Eg::Node::Element ($namespace_uri : string, $qualified_name : string) {
unless ($namespace_uri) {
die "\$namespace_uri must be defined.";
}
unless ($qualified_name) {
die "\$qualified_name must be defined.";
}
unless (length $qualified_name) {
die "\$qualified_name must have its length.";
}
unless (Regex->new("^([a-zA-Z_][\w+\-\.]*:)?[a-zA-Z_][\w+\-\.]*$")->match($qualified_name)) {
die "\$qualified_name must be a valid XML name.";
}
my $element = Eg::Node::Element->new({owner_document => $self});
$element->{namespace_uri} = $namespace_uri;
$element->{node_name} = $qualified_name;
return $element;
}
method create_text_node : Eg::Node::Text ($node_value : string) {
unless ($node_value) {
die "\$node_value must be defined.";
}
my $text_node = Eg::Node::Text->new({owner_document => $self, node_value => $node_value});
return $text_node;
}
method create_comment : Eg::Node::Comment ($node_value : string) {
unless ($node_value) {
die "\$node_value must be defined.";
}
my $comment_node = Eg::Node::Comment->new({owner_document => $self, node_value => $node_value});
return $comment_node;
}
method create_cdata_section : Eg::Node::CDATASection ($node_value : string) {
unless ($node_value) {
die "\$node_value must be defined.";
}
my $cdata_section_node = Eg::Node::CDATASection->new({owner_document => $self, node_value => $node_value});
return $cdata_section_node;
}
method create_document_fragment : Eg::Node::DocumentFragment () {
my $document_fragment_node = Eg::Node::DocumentFragment->new({owner_document => $self});
return $document_fragment_node;
}
method create_attribute : Eg::Node::Attr ($name : string) {
my $attribute_node = Eg::Node::Attr->new($name, {owner_document => $self});
return $attribute_node;
}
method create_attribute_ns : Eg::Node::Attr ($namespace_uri : string, $qualified_name : string) {
my $attribute_node = Eg::Node::Attr->new_ns($namespace_uri, $qualified_name, {owner_document => $self});
return $attribute_node;
}
method create_processing_instruction : Eg::Node::ProcessingInstruction ($target : string, $data : string) {
my $processing_instruction_node = Eg::Node::ProcessingInstruction->new($target, $data, {owner_document => $self});
return $processing_instruction_node;
}
method document_element : Eg::Node::Element () {
my $root_node = (Eg::Node::Element)$self->first_child;
return $root_node;
}
method head : Eg::Node::Element () {
my $root_node = $self->document_element;
return (Eg::Node::Element)$root_node->first_child;
}
method body : Eg::Node::Element () {
my $root_node = $self->document_element;
return (Eg::Node::Element)$root_node->first_child->next_sibling;
}
}
( run in 0.871 second using v1.01-cache-2.11-cpan-5837b0d9d2c )