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

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

?? node.pm

?? 網頁留言本,比一般的留言簿管用
?? PM
字號:
# $Id: Node.pm 4532 2004-05-11 05:15:40Z ezra $package XML::XPath::Node;use strict;use vars qw(@ISA @EXPORT $AUTOLOAD %EXPORT_TAGS @EXPORT_OK);use Exporter;use Carp;@ISA = ('Exporter');sub UNKNOWN_NODE () {0;}sub ELEMENT_NODE () {1;}sub ATTRIBUTE_NODE () {2;}sub TEXT_NODE () {3;}sub CDATA_SECTION_NODE () {4;}sub ENTITY_REFERENCE_NODE () {5;}sub ENTITY_NODE () {6;}sub PROCESSING_INSTRUCTION_NODE () {7;}sub COMMENT_NODE () {8;}sub DOCUMENT_NODE () {9;}sub DOCUMENT_TYPE_NODE () {10;}sub DOCUMENT_FRAGMENT_NODE () {11;}sub NOTATION_NODE () {12;}# Non core DOM stuffsub ELEMENT_DECL_NODE () {13;}sub ATT_DEF_NODE () {14;}sub XML_DECL_NODE () {15;}sub ATTLIST_DECL_NODE () {16;}sub NAMESPACE_NODE () {17;}# per-node constants# Allsub node_parent () { 0; }sub node_pos () { 1; }sub node_global_pos () { 2; }# Elementsub node_prefix () { 3; }sub node_children () { 4; }sub node_name () { 5; }sub node_attribs () { 6; }sub node_namespaces () { 7; }sub node_ids () { 8; }# Charsub node_text () { 3; }# PIsub node_target () { 3; }sub node_data () { 4; }# Commentsub node_comment () { 3; }# Attribute# sub node_prefix () { 3; }sub node_key () { 4; }sub node_value () { 5; }# Namespaces# sub node_prefix () { 3; }sub node_expanded () { 4; }@EXPORT = qw(    UNKNOWN_NODE    ELEMENT_NODE    ATTRIBUTE_NODE    TEXT_NODE    CDATA_SECTION_NODE    ENTITY_REFERENCE_NODE    ENTITY_NODE    PROCESSING_INSTRUCTION_NODE    COMMENT_NODE    DOCUMENT_NODE    DOCUMENT_TYPE_NODE    DOCUMENT_FRAGMENT_NODE    NOTATION_NODE    ELEMENT_DECL_NODE    ATT_DEF_NODE    XML_DECL_NODE    ATTLIST_DECL_NODE    NAMESPACE_NODE    );@EXPORT_OK = qw(            node_parent            node_pos            node_global_pos            node_prefix            node_children            node_name            node_attribs            node_namespaces            node_text            node_target            node_data            node_comment            node_key            node_value            node_expanded                        node_ids        );%EXPORT_TAGS = (    'node_keys' => [        qw(            node_parent            node_pos            node_global_pos            node_prefix            node_children            node_name            node_attribs            node_namespaces            node_text            node_target            node_data            node_comment            node_key            node_value            node_expanded                        node_ids        ), @EXPORT,    ],);my $global_pos = 0;sub nextPos {    my $class = shift;    return $global_pos += 5;}sub resetPos {    $global_pos = 0;}my %DecodeDefaultEntity =( '"' => "&quot;", ">" => "&gt;", "<" => "&lt;", "'" => "&apos;", "&" => "&amp;");sub XMLescape {    my ($str, $default) = @_;    return undef unless defined $str;    $default ||= '';        if ($XML::XPath::EncodeUtf8AsEntity) {        $str =~ s/([\xC0-\xDF].|[\xE0-\xEF]..|[\xF0-\xFF]...)|([$default])|(]]>)/        defined($1) ? XmlUtf8Decode ($1) :         defined ($2) ? $DecodeDefaultEntity{$2} : "]]&gt;" /egsx;    }    else {        $str =~ s/([$default])|(]]>)/        defined ($1) ? $DecodeDefaultEntity{$1} : ']]&gt;' /gsex;    }#?? could there be references that should not be expanded?# e.g. should not replace &#nn; &#xAF; and &abc;#    $str =~ s/&(?!($ReName|#[0-9]+|#x[0-9a-fA-F]+);)/&amp;/go;    $str;}## Opposite of XmlUtf8Decode plus it adds prefix "&#" or "&#x" and suffix ";"# The 2nd parameter ($hex) indicates whether the result is hex encoded or not.#sub XmlUtf8Decode{    my ($str, $hex) = @_;    my $len = length ($str);    my $n;    if ($len == 2) {        my @n = unpack "C2", $str;        $n = (($n[0] & 0x3f) << 6) + ($n[1] & 0x3f);    }    elsif ($len == 3) {        my @n = unpack "C3", $str;        $n = (($n[0] & 0x1f) << 12) + (($n[1] & 0x3f) << 6) +             ($n[2] & 0x3f);    }    elsif ($len == 4) {        my @n = unpack "C4", $str;        $n = (($n[0] & 0x0f) << 18) + (($n[1] & 0x3f) << 12) +             (($n[2] & 0x3f) << 6) + ($n[3] & 0x3f);    }    elsif ($len == 1) {    # just to be complete...        $n = ord ($str);    }    else {        die "bad value [$str] for XmlUtf8Decode";    }    $hex ? sprintf ("&#x%x;", $n) : "&#$n;";}sub new {    my $class = shift;    no strict 'refs';    my $impl = $class . "Impl";    my $this = $impl->new(@_);    if ($XML::XPath::SafeMode) {        return $this;    }    my $self = \$this;    return bless $self, $class;}sub AUTOLOAD {    my $method = $AUTOLOAD;    $method =~ s/.*:://;#    warn "AUTOLOAD $method!\n";    no strict 'refs';    *{$AUTOLOAD} = sub {         my $self = shift;        my $olderror = $@; # store previous exceptions        my $obj = eval { $$self };        if ($@) {            if ($@ =~ /Not a SCALAR reference/) {                croak("No such method $method in " . ref($self));            }            croak $@;        }        if ($obj) {            # make sure $@ propogates if this method call was the result            # of losing scope because of a die().            if ($method =~ /^(DESTROY|del_parent_link)$/) {                $obj->$method(@_);                $@ = $olderror if $olderror;                return;            }            return $obj->$method(@_);        }    };    goto &$AUTOLOAD;}package XML::XPath::NodeImpl;use vars qw/@ISA $AUTOLOAD/;@ISA = ('XML::XPath::Node');sub new {    die "Virtual base method";}sub getNodeType {    my $self = shift;    return XML::XPath::Node::UNKNOWN_NODE;}sub isElementNode {}sub isAttributeNode {}sub isNamespaceNode {}sub isTextNode {}sub isProcessingInstructionNode {}sub isPINode {}sub isCommentNode {}sub getNodeValue {    return;}sub getValue {    shift->getNodeValue(@_);}sub setNodeValue {    return;}sub setValue {    shift->setNodeValue(@_);}sub getParentNode {    my $self = shift;    return $self->[XML::XPath::Node::node_parent];}sub getRootNode {    my $self = shift;    while (my $parent = $self->getParentNode) {        $self = $parent;    }    return $self;}sub getElementById {    my $self = shift;    my ($id) = @_;#    warn "getElementById: $id\n";    my $root = $self->getRootNode;    my $node = $root->[XML::XPath::Node::node_ids]{$id};#    warn "returning node: ", $node->getName, "\n";    return $node;}sub getName { }sub getData { }sub getChildNodes {    return wantarray ? () : [];}sub getChildNode {    return;}sub getAttribute {    return;}sub getAttributes {    return wantarray ? () : [];}sub getAttributeNodes {    shift->getAttributes(@_);}sub getNamespaceNodes {    return wantarray ? () : [];}sub getNamespace {    return;}sub getLocalName {    return;}sub string_value { return; }sub get_pos {    my $self = shift;    return $self->[XML::XPath::Node::node_pos];}sub set_pos {    my $self = shift;    $self->[XML::XPath::Node::node_pos] = shift;}sub get_global_pos {    my $self = shift;    return $self->[XML::XPath::Node::node_global_pos];}sub set_global_pos {    my $self = shift;    $self->[XML::XPath::Node::node_global_pos] = shift;}sub renumber {    my $self = shift;    my $search = shift;    my $diff = shift;        foreach my $node ($self->findnodes($search)) {        $node->set_global_pos(                $node->get_global_pos + $diff                );    }}    sub insertAfter {    my $self = shift;    my $newnode = shift;    my $posnode = shift;    my $pos_number = eval { $posnode->[XML::XPath::Node::node_children][-1]->get_global_pos() + 1; };    if (!defined $pos_number) {        $pos_number = $posnode->get_global_pos() + 1;    }        eval {        if ($pos_number ==                 $posnode->findnodes(                    'following::node()'                    )->get_node(1)->get_global_pos()) {            $posnode->renumber('following::node()', +5);        }    };        my $pos = $posnode->get_pos;        $newnode->setParentNode($self);    splice @{$self->[XML::XPath::Node::node_children]}, $pos + 1, 0, $newnode;        for (my $i = $pos + 1; $i < @{$self->[XML::XPath::Node::node_children]}; $i++) {        $self->[XML::XPath::Node::node_children][$i]->set_pos($i);    }        $newnode->set_global_pos($pos_number);}sub insertBefore {    my $self = shift;    my $newnode = shift;    my $posnode = shift;        my $pos_number = ($posnode->getPreviousSibling() || $posnode->getParentNode)->get_global_pos();    if ($pos_number == $posnode->get_global_pos()) {        $posnode->renumber('self::node() | descendant::node() | following::node()', +5);    }        my $pos = $posnode->get_pos;        $newnode->setParentNode($self);    splice @{$self->[XML::XPath::Node::node_children]}, $pos, 0, $newnode;        for (my $i = $pos; $i < @{$self->[XML::XPath::Node::node_children]}; $i++) {        $self->[XML::XPath::Node::node_children][$i]->set_pos($i);    }        $newnode->set_global_pos($pos_number);}sub getPreviousSibling {    my $self = shift;    my $pos = $self->[XML::XPath::Node::node_pos];    return unless $self->[XML::XPath::Node::node_parent];    return $self->[XML::XPath::Node::node_parent]->getChildNode($pos);}sub getNextSibling {    my $self = shift;    my $pos = $self->[XML::XPath::Node::node_pos];    return unless $self->[XML::XPath::Node::node_parent];    return $self->[XML::XPath::Node::node_parent]->getChildNode($pos + 2);}sub setParentNode {    my $self = shift;    my $parent = shift;#    warn "SetParent of ", ref($self), " to ", $parent->[XML::XPath::Node::node_name], "\n";    $self->[XML::XPath::Node::node_parent] = $parent;}sub del_parent_link {    my $self = shift;    $self->[XML::XPath::Node::node_parent] = undef;}sub dispose {    my $self = shift;    foreach my $kid ($self->getChildNodes) {        $kid->dispose;    }    foreach my $kid ($self->getAttributeNodes) {        $kid->dispose;    }    foreach my $kid ($self->getNamespaceNodes) {        $kid->dispose;    }    $self->[XML::XPath::Node::node_parent] = undef;}sub to_number {    my $num = shift->string_value;    return XML::XPath::Number->new($num);}sub find {    my $node = shift;    my ($path) = @_;    my $xp = XML::XPath->new(); # new is v. lightweight    return $xp->find($path, $node);}sub findvalue {    my $node = shift;    my ($path) = @_;    my $xp = XML::XPath->new();    return $xp->findvalue($path, $node);}sub findnodes {    my $node = shift;    my ($path) = @_;    my $xp = XML::XPath->new();    return $xp->findnodes($path, $node);}sub matches {    my $node = shift;    my ($path, $context) = @_;    my $xp = XML::XPath->new();    return $xp->matches($node, $path, $context);}sub to_sax {    my $self = shift;    unshift @_, 'Handler' if @_ == 1;    my %handlers = @_;        my $doch = $handlers{DocumentHandler} || $handlers{Handler};    my $dtdh = $handlers{DTDHandler} || $handlers{Handler};    my $enth = $handlers{EntityResolver} || $handlers{Handler};    $self->_to_sax ($doch, $dtdh, $enth);}sub DESTROY {}use Carp;sub _to_sax {    carp "_to_sax not implemented in ", ref($_[0]);}1;__END__=head1 NAMEXML::XPath::Node - internal representation of a node=head1 APIThe Node API aims to emulate DOM to some extent, however the APIisn't quite compatible with DOM. This is to ease transition fromXML::DOM programming to XML::XPath. Compatibility with DOM mayarise once XML::DOM gets namespace support.=head2 newCreates a new node. See the sub-classes for parameters to pass to new().=head2 getNodeTypeReturns one of ELEMENT_NODE, TEXT_NODE, COMMENT_NODE, ATTRIBUTE_NODE,PROCESSING_INSTRUCTION_NODE or NAMESPACE_NODE. UNKNOWN_NODE is returnedif the sub-class doesn't implement getNodeType - but that meanssomething is broken! The constants are exported by default fromXML::XPath::Node. The constants have the same numeric value as theXML::DOM versions.=head2 getParentNodeReturns the parent of this node, or undef if this is the root node. Notethat the root node is the root node in terms of XPath - not the rootelement node.=head2 to_sax ( $handler | %handlers )Generates sax calls to the handler or handlers. See the PerlSAX docs fordetails (not yet implemented correctly).=head1 MORE INFOSee the sub-classes for the meaning of the rest of the API:=over 4=item *L<XML::XPath::Node::Element>=item *L<XML::XPath::Node::Attribute>=item *L<XML::XPath::Node::Namespace>=item *L<XML::XPath::Node::Text>=item *L<XML::XPath::Node::Comment>=item *L<XML::XPath::Node::PI>=back=cut

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性猛交xxxx乱大交退制版| 欧美熟乱第一页| aaa欧美日韩| 色综合久久九月婷婷色综合| 欧美性色aⅴ视频一区日韩精品| 日韩欧美国产综合在线一区二区三区| 国产精品美女一区二区三区| 日韩精品欧美成人高清一区二区| 国产高清久久久| 欧美日韩午夜精品| 日韩亚洲电影在线| 亚洲免费在线看| 国产精品夜夜嗨| 91小视频免费观看| 欧美精品一区二区在线观看| 亚洲乱码日产精品bd| 韩国在线一区二区| 欧美日韩一区中文字幕| 国产三级一区二区| 国产乱人伦精品一区二区在线观看| 国产精品99久久久久久久女警| 5月丁香婷婷综合| 亚洲综合精品自拍| 国产精品一区二区三区99| 欧美日韩精品免费观看视频| 国产精品乱人伦| 久久66热re国产| 5月丁香婷婷综合| 日本不卡123| 日韩精品中文字幕一区二区三区| 亚洲综合激情小说| 国产乱妇无码大片在线观看| 欧美精品亚洲二区| 裸体在线国模精品偷拍| 337p亚洲精品色噜噜狠狠| 国模少妇一区二区三区| 欧美日韩一区三区| 国产蜜臀97一区二区三区| 日本成人在线一区| 日本韩国欧美在线| 欧美高清在线一区| av午夜一区麻豆| 亚洲综合偷拍欧美一区色| 在线观看三级视频欧美| 亚洲va在线va天堂| 欧美xfplay| 在线亚洲免费视频| 欧亚一区二区三区| 亚洲欧美日韩国产手机在线| 国产成人精品亚洲日本在线桃色| 欧美va亚洲va在线观看蝴蝶网| 日韩福利电影在线| 日韩欧美激情四射| 国产一区激情在线| 欧美国产亚洲另类动漫| 成人性视频免费网站| 国产精品国产三级国产aⅴ入口 | 欧美一区二区三区在线观看| 亚洲成人av电影| 在线成人免费观看| 奇米色一区二区| 精品理论电影在线观看 | 亚洲色图欧美偷拍| 色婷婷狠狠综合| 亚洲国产精品人人做人人爽| 欧美人狂配大交3d怪物一区| 日韩电影在线一区二区三区| 日韩欧美中文一区| 国产久卡久卡久卡久卡视频精品| 在线视频国内自拍亚洲视频| 一区二区免费在线| 欧美疯狂性受xxxxx喷水图片| 日韩国产在线观看| 久久精品日产第一区二区三区高清版| 成人精品gif动图一区| 亚洲美女偷拍久久| 91精品国产综合久久久蜜臀粉嫩| 久久成人久久爱| 经典一区二区三区| 国产精品久久久久久久久晋中| 色婷婷av一区二区三区gif| 性欧美大战久久久久久久久| 精品国产乱码久久| 成人18视频日本| 午夜伊人狠狠久久| 久久久久久久久久久久久久久99| 91在线视频免费观看| 五月婷婷综合激情| 久久久久88色偷偷免费| 色拍拍在线精品视频8848| 免费一级片91| 亚洲四区在线观看| 欧美日韩精品一区二区三区四区| 黑人巨大精品欧美黑白配亚洲| 亚洲欧洲国产日韩| 在线电影院国产精品| 国产精品一线二线三线精华| 亚洲男同性视频| 精品国产99国产精品| 91视频www| 国产在线精品视频| 亚洲高清免费观看高清完整版在线观看| 日韩免费看的电影| 99久久99久久精品国产片果冻| 日韩精品乱码av一区二区| 国产精品女人毛片| 日韩欧美一卡二卡| 色综合久久久久久久久| 国产精品原创巨作av| 亚洲v日本v欧美v久久精品| 中文字幕av资源一区| 欧美一区二区三区视频免费播放| 91亚洲国产成人精品一区二区三| 久久99蜜桃精品| 亚洲va欧美va天堂v国产综合| 亚洲国产成人一区二区三区| 91超碰这里只有精品国产| 99国产欧美久久久精品| 国内精品久久久久影院薰衣草| 亚洲国产人成综合网站| 中文子幕无线码一区tr| 欧美第一区第二区| 欧美午夜影院一区| 91蜜桃在线观看| 国产精品1区2区| 久久福利资源站| 天堂成人免费av电影一区| 亚洲视频你懂的| 国产精品卡一卡二卡三| 久久久久久久久久久久久夜| 日韩视频永久免费| 欧美日韩中字一区| 在线影院国内精品| 99久久夜色精品国产网站| 粉嫩嫩av羞羞动漫久久久| 久久国产精品72免费观看| 日本aⅴ免费视频一区二区三区| 一区二区三区四区不卡在线| 国产精品乱人伦中文| 久久久国产一区二区三区四区小说| 国产大陆亚洲精品国产| 麻豆精品一区二区三区| 亚洲一二三区在线观看| 亚洲欧美在线观看| 国产精品理论片在线观看| 国产丝袜在线精品| 26uuu久久天堂性欧美| 91精品免费在线观看| 欧美日韩卡一卡二| 精品视频1区2区| 色婷婷av一区二区三区大白胸| 成人激情午夜影院| 成人av影院在线| 成人午夜电影久久影院| 成人永久aaa| 成a人片亚洲日本久久| 粉嫩aⅴ一区二区三区四区 | 国产欧美日韩在线| 2024国产精品| 国产午夜精品一区二区三区嫩草 | 在线观看av不卡| 不卡的av在线播放| 成人精品高清在线| av一区二区三区黑人| 97久久超碰国产精品电影| 欧美大片国产精品| 精品国产免费一区二区三区四区 | 国产情人综合久久777777| 久久久精品欧美丰满| 国产欧美在线观看一区| 国产精品色在线| 亚洲天堂精品视频| 一区二区不卡在线播放 | 免费日本视频一区| 玖玖九九国产精品| 国产成人免费视频网站| 成人aaaa免费全部观看| 日本乱人伦一区| 欧美军同video69gay| 日韩一区二区在线免费观看| 精品国产免费一区二区三区香蕉 | 欧美久久久久免费| 日韩欧美高清一区| 国产三级一区二区三区| 亚洲女性喷水在线观看一区| 欧美成人a在线| 久久九九99视频| 国产精品福利电影一区二区三区四区 | 青青青爽久久午夜综合久久午夜| 免费看日韩a级影片| 国产风韵犹存在线视精品| 91看片淫黄大片一级| 91超碰这里只有精品国产| 久久精品一区二区三区四区| 亚洲视频中文字幕| 丝袜美腿亚洲一区| 国产成人免费视频网站 | 丁香桃色午夜亚洲一区二区三区| 91亚洲资源网| 日韩欧美你懂的|