亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? element.pm

?? 網頁留言本,比一般的留言簿管用
?? PM
字號:
# $Id: Element.pm 4532 2004-05-11 05:15:40Z ezra $package XML::XPath::Node::Element;use strict;use vars qw/@ISA/;@ISA = ('XML::XPath::Node');package XML::XPath::Node::ElementImpl;use vars qw/@ISA/;@ISA = ('XML::XPath::NodeImpl', 'XML::XPath::Node::Element');use XML::XPath::Node ':node_keys';sub new {    my $class = shift;    my ($tag, $prefix) = @_;            my $pos = XML::XPath::Node->nextPos;    my @vals;    @vals[node_global_pos, node_prefix, node_children, node_name, node_attribs] =            ($pos, $prefix, [], $tag, []);            my $self = \@vals;    bless $self, $class;}sub getNodeType { ELEMENT_NODE }sub isElementNode { 1; }sub appendChild {    my $self = shift;    my $newnode = shift;    if (shift) { # called from internal to XML::XPath#    warn "AppendChild $newnode to $self\n";        push @{$self->[node_children]}, $newnode;        $newnode->setParentNode($self);        $newnode->set_pos($#{$self->[node_children]});    }    else {        if (@{$self->[node_children]}) {            $self->insertAfter($newnode, $self->[node_children][-1]);        }        else {            my $pos_number = $self->get_global_pos() + 1;                        if (my $brother = $self->getNextSibling()) { # optimisation                if ($pos_number == $brother->get_global_pos()) {                    $self->renumber('following::node()', +5);                }            }            else {                eval {                    if ($pos_number ==                             $self->findnodes(                                'following::node()'                                )->get_node(1)->get_global_pos()) {                        $self->renumber('following::node()', +5);                    }                };            }                        push @{$self->[node_children]}, $newnode;            $newnode->setParentNode($self);            $newnode->set_pos($#{$self->[node_children]});            $newnode->set_global_pos($pos_number);        }    }}sub removeChild {    my $self = shift;    my $delnode = shift;        my $pos = $delnode->get_pos;    #    warn "removeChild: $pos\n";    #    warn "children: ", scalar @{$self->[node_children]}, "\n";    #    my $node = $self->[node_children][$pos];#    warn "child at $pos is: $node\n";        splice @{$self->[node_children]}, $pos, 1;    #    warn "children now: ", scalar @{$self->[node_children]}, "\n";        for (my $i = $pos; $i < @{$self->[node_children]}; $i++) {#        warn "Changing pos of child: $i\n";        $self->[node_children][$i]->set_pos($i);    }        $delnode->del_parent_link;    }sub appendIdElement {    my $self = shift;    my ($val, $element) = @_;#    warn "Adding '$val' to ID hash\n";    $self->[node_ids]{$val} = $element;}sub DESTROY {    my $self = shift;#    warn "DESTROY ELEMENT: ", $self->[node_name], "\n";#    warn "DESTROY ROOT\n" unless $self->[node_name];        foreach my $kid ($self->getChildNodes) {        $kid && $kid->del_parent_link;    }    foreach my $attr ($self->getAttributeNodes) {        $attr && $attr->del_parent_link;    }    foreach my $ns ($self->getNamespaceNodes) {        $ns && $ns->del_parent_link;    }#     $self->[node_children] = undef;#     $self->[node_attribs] = undef;#     $self->[node_namespaces] = undef;}sub getName {    my $self = shift;    $self->[node_name];}sub getTagName {    shift->getName(@_);}sub getLocalName {    my $self = shift;    my $local = $self->[node_name];    $local =~ s/.*://;    return $local;}sub getChildNodes {    my $self = shift;    return wantarray ? @{$self->[node_children]} : $self->[node_children];}sub getChildNode {    my $self = shift;    my ($pos) = @_;    if ($pos < 1 || $pos > @{$self->[node_children]}) {        return;    }    return $self->[node_children][$pos - 1];}sub getFirstChild {    my $self = shift;    return unless @{$self->[node_children]};    return $self->[node_children][0];}sub getLastChild {    my $self = shift;    return unless @{$self->[node_children]};    return $self->[node_children][-1];}sub getAttributeNode {    my $self = shift;    my ($name) = @_;    my $attribs = $self->[node_attribs];    foreach my $attr (@$attribs) {        return $attr if $attr->getName eq $name;    }}sub getAttribute {    my $self = shift;    my $attr = $self->getAttributeNode(@_);    if ($attr) {        return $attr->getValue;    }}sub getAttributes {    my $self = shift;    if ($self->[node_attribs]) {        return wantarray ? @{$self->[node_attribs]} : $self->[node_attribs];    }    return wantarray ? () : [];}sub appendAttribute {    my $self = shift;    my $attribute = shift;        if (shift) { # internal call        push @{$self->[node_attribs]}, $attribute;        $attribute->setParentNode($self);        $attribute->set_pos($#{$self->[node_attribs]});    }    else {        my $node_num;        if (@{$self->[node_attribs]}) {            $node_num = $self->[node_attribs][-1]->get_global_pos() + 1;        }        else {            $node_num = $self->get_global_pos() + 1;        }                eval {            if (@{$self->[node_children]}) {                if ($node_num == $self->[node_children][-1]->get_global_pos()) {                    $self->renumber('descendant::node() | following::node()', +5);                }            }            elsif ($node_num ==                     $self->findnodes('following::node()')->get_node(1)->get_global_pos()) {                $self->renumber('following::node()', +5);            }        };                push @{$self->[node_attribs]}, $attribute;        $attribute->setParentNode($self);        $attribute->set_pos($#{$self->[node_attribs]});        $attribute->set_global_pos($node_num);            }}sub removeAttribute {    my $self = shift;    my $attrib = shift;        if (!ref($attrib)) {        $attrib = $self->getAttributeNode($attrib);    }        my $pos = $attrib->get_pos;        splice @{$self->[node_attribs]}, $pos, 1;        for (my $i = $pos; $i < @{$self->[node_attribs]}; $i++) {        $self->[node_attribs][$i]->set_pos($i);    }        $attrib->del_parent_link;}sub setAttribute {    my $self = shift;    my ($name, $value) = @_;        if (my $attrib = $self->getAttributeNode($name)) {        $attrib->setNodeValue($value);        return $attrib;    }        my ($nsprefix) = ($name =~ /^($XML::XPath::Parser::NCName):($XML::XPath::Parser::NCName)$/o);        if ($nsprefix && !$self->getNamespace($nsprefix)) {        die "No namespace matches prefix: $nsprefix";    }        my $newnode = XML::XPath::Node::Attribute->new($name, $value, $nsprefix);    $self->appendAttribute($newnode);}sub setAttributeNode {    my $self = shift;    my ($node) = @_;        if (my $attrib = $self->getAttributeNode($node->getName)) {        $attrib->setNodeValue($node->getValue);        return $attrib;    }        my ($nsprefix) = ($node->getName() =~ /^($XML::XPath::Parser::NCName):($XML::XPath::Parser::NCName)$/o);        if ($nsprefix && !$self->getNamespace($nsprefix)) {        die "No namespace matches prefix: $nsprefix";    }        $self->appendAttribute($node);}sub getNamespace {    my $self = shift;    my ($prefix) = @_;    $prefix ||= $self->getPrefix || '#default';    my $namespaces = $self->[node_namespaces] || [];    foreach my $ns (@$namespaces) {        return $ns if $ns->getPrefix eq $prefix;    }    my $parent = $self->getParentNode;        return $parent->getNamespace($prefix) if $parent;}sub getNamespaces {    my $self = shift;    if ($self->[node_namespaces]) {        return wantarray ? @{$self->[node_namespaces]} : $self->[node_namespaces];    }    return wantarray ? () : [];}sub getNamespaceNodes { goto &getNamespaces }sub appendNamespace {    my $self = shift;    my ($ns) = @_;    push @{$self->[node_namespaces]}, $ns;    $ns->setParentNode($self);    $ns->set_pos($#{$self->[node_namespaces]});}sub getPrefix {    my $self = shift;    $self->[node_prefix];}sub getExpandedName {    my $self = shift;    warn "Expanded name not implemented for ", ref($self), "\n";    return;}sub _to_sax {    my $self = shift;    my ($doch, $dtdh, $enth) = @_;        my $tag = $self->getName;    my @attr;        for my $attr ($self->getAttributes) {        push @attr, $attr->getName, $attr->getValue;    }        my $ns = $self->getNamespace($self->[node_prefix]);    if ($ns) {        $doch->start_element(                 {                 Name => $tag,                Attributes => { @attr },                NamespaceURI => $ns->getExpanded,                Prefix => $ns->getPrefix,                LocalName => $self->getLocalName,                }            );    }    else {        $doch->start_element(                {                Name => $tag,                Attributes => { @attr },                }            );    }        for my $kid ($self->getChildNodes) {        $kid->_to_sax($doch, $dtdh, $enth);    }        if ($ns) {        $doch->end_element(                 {                Name => $tag,                NamespaceURI => $ns->getExpanded,                Prefix => $ns->getPrefix,                LocalName => $self->getLocalName                }            );    }    else {        $doch->end_element( { Name => $tag } );    }}sub string_value {    my $self = shift;    my $string = '';    foreach my $kid (@{$self->[node_children]}) {        if ($kid->getNodeType == ELEMENT_NODE                || $kid->getNodeType == TEXT_NODE) {            $string .= $kid->string_value;        }    }    return $string;}sub toString {    my $self = shift;    my $norecurse = shift;    my $string = '';    if (! $self->[node_name] ) {            # root node            return join('', map { $_->toString($norecurse) } @{$self->[node_children]});    }    $string .= "<" . $self->[node_name];            $string .= join('', map { $_->toString } @{$self->[node_namespaces]});            $string .= join('', map { $_->toString } @{$self->[node_attribs]});        if (@{$self->[node_children]}) {        $string .= ">";        if (!$norecurse) {                        $string .= join('', map { $_->toString($norecurse) } @{$self->[node_children]});        }                $string .= "</" . $self->[node_name] . ">";    }    else {        $string .= " />";    }        return $string;}1;__END__=head1 NAMEElement - an <element>=head1 API=head2 new ( name, prefix )Create a new Element node with name "name" and prefix "prefix". The namebe "prefix:local" if prefix is defined. I know that sounds wierd, but itworks ;-)=head2 getNameReturns the name (including "prefix:" if defined) of this element.=head2 getLocalNameReturns just the local part of the name (the bit after "prefix:").=head2 getChildNodesReturns the children of this element. In list context returns a list. Inscalar context returns an array ref.=head2 getChildNode ( pos )Returns the child at position pos.=head2 appendChild ( childnode )Appends the child node to the list of current child nodes.=head2 getAttribute ( name )Returns the attribute node with key name.=head2 getAttributes / getAttributeNodesReturns the attribute nodes. In list context returns a list. In scalarcontext returns an array ref.=head2 appendAttribute ( attrib_node)Appends the attribute node to the list of attributes (XML::XPath storesattributes in order).=head2 getNamespace ( prefix )Returns the namespace node by the given prefix=head2 getNamespaces / getNamespaceNodesReturns the namespace nodes. In list context returns a list. In scalarcontext returns an array ref.=head2 appendNamespace ( ns_node )Appends the namespace node to the list of namespaces.=head2 getPrefixReturns the prefix of this element=head2 getExpandedNameReturns the expanded name of this element (not yet implemented right).=head2 string_valueFor elements, the string_value is the concatenation of all string_valuesof all text-descendants of the element node in document order.=head2 toString ( [ norecurse ] )Output (and all children) the node to a string. Doesn't process childrenif the norecurse option is a true value.=cut

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级日本三级少妇99| 国产馆精品极品| 欧美人动与zoxxxx乱| 亚洲成人综合在线| 91麻豆精品国产91久久久使用方法 | 日韩一区二区三区在线观看| 日本不卡1234视频| 精品美女在线播放| 成人av综合在线| 亚洲大型综合色站| 精品剧情v国产在线观看在线| 国产精品一线二线三线精华| 日本一区二区三区在线不卡| 日本国产一区二区| 午夜精品久久久久久久蜜桃app| 日韩欧美电影一区| 99久久亚洲一区二区三区青草| 亚洲欧美精品午睡沙发| 91精品国产91热久久久做人人| 国产露脸91国语对白| 中文字幕一区二区三区在线不卡 | 亚洲成人中文在线| 欧美精品一区二区三区四区| 99re免费视频精品全部| 天天做天天摸天天爽国产一区| 精品久久久久久久久久久院品网 | 欧美中文字幕一二三区视频| 美腿丝袜亚洲综合| 国产精品对白交换视频 | 国产一区二区三区在线看麻豆| 国产精品国产三级国产aⅴ中文 | 欧美性受xxxx黑人xyx性爽| 美女在线观看视频一区二区| 国产精品久久久久aaaa樱花| 欧美高清激情brazzers| eeuss国产一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久99精品国产麻豆婷婷洗澡| **网站欧美大片在线观看| 欧美一区二区三区在线电影| 99精品国产91久久久久久| 精品一区二区成人精品| 亚洲五码中文字幕| 国产精品久久久久aaaa| www国产精品av| 欧美福利电影网| 99久久精品国产导航| 韩国精品免费视频| 丝袜国产日韩另类美女| 一区二区三区美女视频| 国产视频不卡一区| 精品国产一区二区三区久久影院| 欧美日韩在线亚洲一区蜜芽| 99精品偷自拍| 成人美女视频在线看| 国产一区二区视频在线| 蜜桃一区二区三区在线| 亚洲不卡av一区二区三区| 亚洲欧美日韩系列| 国产精品美日韩| 久久久久久久久久久黄色| 日韩三级.com| 欧美一区二区播放| 精品视频在线看| 在线观看免费成人| 色综合久久天天综合网| 99热精品国产| 99国产精品国产精品毛片| 国产成人小视频| 国产一区二区不卡在线| 国产精品综合视频| 国产伦精品一区二区三区在线观看| 日本三级亚洲精品| 蜜桃av一区二区| 精一区二区三区| 黄色精品一二区| 久久99精品久久久久婷婷| 黄网站免费久久| 国产精品一区二区不卡| 成人性生交大片免费看在线播放 | 亚洲男同性恋视频| 亚洲日本免费电影| 一区二区三区四区精品在线视频| 亚洲欧洲制服丝袜| 一区二区三区蜜桃| 日韩国产高清在线| 麻豆中文一区二区| 国产美女视频一区| 成人在线视频首页| 91视频观看免费| 欧美私模裸体表演在线观看| 欧美午夜不卡在线观看免费| 欧美日本乱大交xxxxx| 日韩西西人体444www| 久久综合色一综合色88| 国产欧美视频一区二区三区| 亚洲欧洲日韩一区二区三区| 亚洲国产精品久久久久婷婷884| 性做久久久久久免费观看| 免费看黄色91| 丰满少妇在线播放bd日韩电影| 成人黄色小视频在线观看| 色吧成人激情小说| 91精品免费观看| 国产欧美日韩卡一| 一区二区三区不卡视频| 美国十次了思思久久精品导航| 国产成人亚洲综合a∨猫咪| 日本久久精品电影| 欧美成va人片在线观看| 日韩美女啊v在线免费观看| 天堂久久一区二区三区| 懂色av一区二区三区蜜臀| 91九色最新地址| 久久蜜臀精品av| 亚洲一区二区欧美| 国产一区不卡在线| 欧美网站大全在线观看| 久久免费美女视频| 亚洲成av人在线观看| 成人小视频免费在线观看| 欧美日韩成人在线一区| 国产喷白浆一区二区三区| 午夜精品视频一区| 成人国产在线观看| 欧美成人福利视频| 一个色综合av| 国产成人免费9x9x人网站视频| 欧美日韩国产成人在线免费| 国产嫩草影院久久久久| 五月天一区二区三区| 成人av电影免费在线播放| 日韩欧美国产系列| 亚洲一区二区偷拍精品| 国产成人免费在线观看不卡| 欧美一区二区三区影视| 亚洲欧美国产高清| 成人精品电影在线观看| 精品日产卡一卡二卡麻豆| 五月婷婷久久综合| 91成人在线精品| 亚洲欧洲三级电影| 懂色av中文字幕一区二区三区| 日韩久久精品一区| 午夜精品福利一区二区三区av| 972aa.com艺术欧美| 国产欧美日韩中文久久| 久久成人免费日本黄色| 欧美日韩精品一区二区三区 | 欧美日韩国产乱码电影| 中文字幕综合网| 成人精品电影在线观看| 日本一区二区成人| 国产精品一品二品| 久久精品夜色噜噜亚洲aⅴ| 青青草一区二区三区| 欧美剧在线免费观看网站 | 91色婷婷久久久久合中文| 欧美激情一区二区三区在线| 国内精品伊人久久久久av一坑| 91精品国产黑色紧身裤美女| 婷婷中文字幕一区三区| 91久久线看在观草草青青| ㊣最新国产の精品bt伙计久久| 成人免费视频一区| 国产精品成人免费在线| 99精品视频在线观看| 国产精品毛片a∨一区二区三区| 盗摄精品av一区二区三区| 久久久国产一区二区三区四区小说| 经典三级在线一区| 久久九九99视频| 国产精品一区二区三区网站| 亚洲精品一区二区三区精华液| 六月丁香婷婷色狠狠久久| 日韩一区二区三区视频在线观看| 亚洲国产视频在线| 7777精品伊人久久久大香线蕉超级流畅| 一区二区理论电影在线观看| 欧美怡红院视频| 日韩精品乱码免费| 欧美不卡视频一区| 成人在线综合网站| 亚洲激情av在线| 欧美精品高清视频| 久久99久久99| 中文字幕一区二区三区四区| 色噜噜狠狠成人中文综合| 一区二区三区中文字幕精品精品| 欧洲国内综合视频| 日本不卡高清视频| 日本一区二区久久| 欧洲一区二区三区在线| 麻豆91免费观看| 国产日本亚洲高清| 91黄视频在线观看| 久久国产精品无码网站| 亚洲国产成人午夜在线一区| 在线观看一区不卡| 精品影院一区二区久久久|