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

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

?? expr.pm

?? 網頁留言本,比一般的留言簿管用
?? PM
?? 第 1 頁 / 共 2 頁
字號:
# $Id: Expr.pm 4532 2004-05-11 05:15:40Z ezra $package XML::XPath::Expr;use strict;sub new {    my $class = shift;    my ($pp) = @_;    bless { predicates => [], pp => $pp }, $class;}sub as_string {    my $self = shift;    local $^W; # Use of uninitialized value! grrr    my $string = "(" . $self->{lhs}->as_string;    $string .= " " . $self->{op} . " " if defined $self->{op};    $string .= $self->{rhs}->as_string if defined $self->{rhs};    $string .= ")";    foreach my $predicate (@{$self->{predicates}}) {        $string .= "[" . $predicate->as_string . "]";    }    return $string;}sub as_xml {    my $self = shift;    local $^W; # Use of uninitialized value! grrr    my $string;    if (defined $self->{op}) {        $string .= $self->op_xml();    }    else {        $string .= $self->{lhs}->as_xml();    }    foreach my $predicate (@{$self->{predicates}}) {        $string .= "<Predicate>\n" . $predicate->as_xml() . "</Predicate>\n";    }    return $string;}sub op_xml {    my $self = shift;    my $op = $self->{op};    my $tag;        for ($op) {        /^or$/    && do {                    $tag = "Or";                };        /^and$/    && do {                    $tag = "And";                };        /^=$/    && do {                    $tag = "Equals";                };        /^!=$/    && do {                    $tag = "NotEquals";                };        /^<=$/    && do {                    $tag = "LessThanOrEquals";                };        /^>=$/    && do {                    $tag = "GreaterThanOrEquals";                };        /^>$/    && do {                    $tag = "GreaterThan";                };        /^<$/    && do {                    $tag = "LessThan";                };        /^\+$/    && do {                    $tag = "Plus";                };        /^-$/    && do {                    $tag = "Minus";                };        /^div$/    && do {                    $tag = "Div";                };        /^mod$/    && do {                    $tag = "Mod";                };        /^\*$/    && do {                    $tag = "Multiply";                };        /^\|$/    && do {                    $tag = "Union";                };    }        return "<$tag>\n" . $self->{lhs}->as_xml() . $self->{rhs}->as_xml() . "</$tag>\n";}sub set_lhs {    my $self = shift;    $self->{lhs} = $_[0];}sub set_op {    my $self = shift;    $self->{op} = $_[0];}sub set_rhs {    my $self = shift;    $self->{rhs} = $_[0];}sub push_predicate {    my $self = shift;        die "Only 1 predicate allowed on FilterExpr in W3C XPath 1.0"            if @{$self->{predicates}};        push @{$self->{predicates}}, $_[0];}sub get_lhs { $_[0]->{lhs}; }sub get_rhs { $_[0]->{rhs}; }sub get_op { $_[0]->{op}; }sub evaluate {    my $self = shift;    my $node = shift;        # If there's an op, result is result of that op.    # If no op, just resolve Expr    #    warn "Evaluate Expr: ", $self->as_string, "\n";        my $results;        if ($self->{op}) {        die ("No RHS of ", $self->as_string) unless $self->{rhs};        $results = $self->op_eval($node);    }    else {        $results = $self->{lhs}->evaluate($node);    }        if (my @predicates = @{$self->{predicates}}) {        if (!$results->isa('XML::XPath::NodeSet')) {            die "Can't have predicates execute on object type: " . ref($results);        }                # filter initial nodeset by each predicate        foreach my $predicate (@{$self->{predicates}}) {            $results = $self->filter_by_predicate($results, $predicate);        }    }        return $results;}sub op_eval {    my $self = shift;    my $node = shift;        my $op = $self->{op};        for ($op) {        /^or$/    && do {                    return op_or($node, $self->{lhs}, $self->{rhs});                };        /^and$/    && do {                    return op_and($node, $self->{lhs}, $self->{rhs});                };        /^=$/    && do {                    return op_equals($node, $self->{lhs}, $self->{rhs});                };        /^!=$/    && do {                    return op_nequals($node, $self->{lhs}, $self->{rhs});                };        /^<=$/    && do {                    return op_le($node, $self->{lhs}, $self->{rhs});                };        /^>=$/    && do {                    return op_ge($node, $self->{lhs}, $self->{rhs});                };        /^>$/    && do {                    return op_gt($node, $self->{lhs}, $self->{rhs});                };        /^<$/    && do {                    return op_lt($node, $self->{lhs}, $self->{rhs});                };        /^\+$/    && do {                    return op_plus($node, $self->{lhs}, $self->{rhs});                };        /^-$/    && do {                    return op_minus($node, $self->{lhs}, $self->{rhs});                };        /^div$/    && do {                    return op_div($node, $self->{lhs}, $self->{rhs});                };        /^mod$/    && do {                    return op_mod($node, $self->{lhs}, $self->{rhs});                };        /^\*$/    && do {                    return op_mult($node, $self->{lhs}, $self->{rhs});                };        /^\|$/    && do {                    return op_union($node, $self->{lhs}, $self->{rhs});                };                die "No such operator, or operator unimplemented in ", $self->as_string, "\n";    }}# Operatorsuse XML::XPath::Boolean;sub op_or {    my ($node, $lhs, $rhs) = @_;    if($lhs->evaluate($node)->to_boolean->value) {        return XML::XPath::Boolean->True;    }    else {        return $rhs->evaluate($node)->to_boolean;    }}sub op_and {    my ($node, $lhs, $rhs) = @_;    if( ! $lhs->evaluate($node)->to_boolean->value ) {        return XML::XPath::Boolean->False;    }    else {        return $rhs->evaluate($node)->to_boolean;    }}sub op_equals {    my ($node, $lhs, $rhs) = @_;    my $lh_results = $lhs->evaluate($node);    my $rh_results = $rhs->evaluate($node);        if ($lh_results->isa('XML::XPath::NodeSet') &&            $rh_results->isa('XML::XPath::NodeSet')) {        # True if and only if there is a node in the        # first set and a node in the second set such        # that the result of performing the comparison        # on the string-values of the two nodes is true.        foreach my $lhnode ($lh_results->get_nodelist) {            foreach my $rhnode ($rh_results->get_nodelist) {                if ($lhnode->string_value eq $rhnode->string_value) {                    return XML::XPath::Boolean->True;                }            }        }        return XML::XPath::Boolean->False;    }    elsif (($lh_results->isa('XML::XPath::NodeSet') ||            $rh_results->isa('XML::XPath::NodeSet')) &&            (!$lh_results->isa('XML::XPath::NodeSet') ||             !$rh_results->isa('XML::XPath::NodeSet'))) {        # (that says: one is a nodeset, and one is not a nodeset)                my ($nodeset, $other);        if ($lh_results->isa('XML::XPath::NodeSet')) {            $nodeset = $lh_results;            $other = $rh_results;        }        else {            $nodeset = $rh_results;            $other = $lh_results;        }                # True if and only if there is a node in the        # nodeset such that the result of performing        # the comparison on <type>(string_value($node))        # is true.        if ($other->isa('XML::XPath::Number')) {            foreach my $node ($nodeset->get_nodelist) {                if ($node->string_value == $other->value) {                    return XML::XPath::Boolean->True;                }            }        }        elsif ($other->isa('XML::XPath::Literal')) {            foreach my $node ($nodeset->get_nodelist) {                if ($node->string_value eq $other->value) {                    return XML::XPath::Boolean->True;                }            }        }        elsif ($other->isa('XML::XPath::Boolean')) {            if ($nodeset->to_boolean->value == $other->value) {                return XML::XPath::Boolean->True;            }        }        return XML::XPath::Boolean->False;    }    else { # Neither is a nodeset        if ($lh_results->isa('XML::XPath::Boolean') ||            $rh_results->isa('XML::XPath::Boolean')) {            # if either is a boolean            if ($lh_results->to_boolean->value == $rh_results->to_boolean->value) {                return XML::XPath::Boolean->True;            }            return XML::XPath::Boolean->False;        }        elsif ($lh_results->isa('XML::XPath::Number') ||                $rh_results->isa('XML::XPath::Number')) {            # if either is a number            local $^W; # 'number' might result in undef            if ($lh_results->to_number->value == $rh_results->to_number->value) {                return XML::XPath::Boolean->True;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久9999亚洲精品| 91一区在线观看| 欧美aaaaa成人免费观看视频| 亚洲成av人综合在线观看| 99久久国产免费看| 午夜精品福利一区二区三区蜜桃| 欧美一区二区成人6969| 国产精品系列在线播放| 精品一区二区免费在线观看| 在线观看一区二区视频| 日韩一级视频免费观看在线| 日韩精品久久久久久| 欧美天天综合网| 在线观看网站黄不卡| 国产一区二区三区观看| 亚洲一级在线观看| 久久久www成人免费毛片麻豆 | 欧美精品久久天天躁| 国产免费成人在线视频| 波多野结衣中文字幕一区二区三区| 日本亚洲天堂网| 国产成人免费视频| 国产成人免费网站| 蜜桃视频免费观看一区| 热久久国产精品| 亚洲另类在线一区| 亚洲欧美日韩中文播放 | 国产精品欧美久久久久无广告 | 欧美国产激情二区三区 | 精品美女一区二区| 成人免费高清在线| 一本到不卡免费一区二区| 一道本成人在线| 在线不卡a资源高清| 日韩精品一区二区三区中文不卡 | 亚洲国产精品影院| 亚洲欧美激情视频在线观看一区二区三区| av中文字幕在线不卡| 在线观看一区二区视频| 91精品中文字幕一区二区三区| 91看片淫黄大片一级| 国产精品免费aⅴ片在线观看| 亚洲第一会所有码转帖| 国产原创一区二区三区| 91在线免费视频观看| 久久久久国色av免费看影院| 久久婷婷成人综合色| 中文字幕一区二区日韩精品绯色| 91福利在线播放| 综合久久久久久| 一区二区不卡在线播放| 性感美女久久精品| 国产麻豆精品视频| 日韩亚洲欧美一区二区三区| 亚洲自拍偷拍图区| 亚洲二区视频在线| 欧美三级日本三级少妇99| 欧美色视频一区| 欧美人狂配大交3d怪物一区| 亚洲天堂精品在线观看| 在线看不卡av| 亚洲激情图片小说视频| 91色九色蝌蚪| 91精选在线观看| 日本成人中文字幕在线视频| 色综合一个色综合| 中文字幕亚洲区| 性做久久久久久免费观看| 韩国成人在线视频| 国产精品无遮挡| 日韩一级视频免费观看在线| 日本麻豆一区二区三区视频| 欧美韩国一区二区| 欧美亚洲一区二区在线观看| 夜夜夜精品看看| 91在线观看成人| 五月婷婷综合网| 日韩视频一区二区| 伊人夜夜躁av伊人久久| 欧美va日韩va| 91在线观看成人| 欧美一区二区精美| av中文字幕不卡| 国产麻豆精品视频| 亚洲一区二区五区| 国产亚洲一区字幕| 国产传媒久久文化传媒| 丝瓜av网站精品一区二区| 久久免费午夜影院| 91精品国产美女浴室洗澡无遮挡| 国产真实乱偷精品视频免| 蜜桃精品在线观看| 亚洲bdsm女犯bdsm网站| 亚洲欧美日韩一区| 精品少妇一区二区三区| 成人av在线网| 91理论电影在线观看| 蜜臀av一区二区三区| 蜜桃视频一区二区三区在线观看| 国产香蕉久久精品综合网| 国产91对白在线观看九色| 国产999精品久久| 日本道在线观看一区二区| 欧美羞羞免费网站| 欧美日韩和欧美的一区二区| 欧美在线播放高清精品| 欧美精品乱码久久久久久| 成人av网在线| 91成人免费在线| 久久综合视频网| av动漫一区二区| 666欧美在线视频| 欧美激情资源网| 一区二区三区在线观看国产| 日韩激情中文字幕| av电影天堂一区二区在线| 在线视频一区二区免费| 日本乱人伦一区| 欧美无砖砖区免费| 欧美一区二区精品| 国产精品激情偷乱一区二区∴| 欧美α欧美αv大片| 国产丝袜欧美中文另类| 婷婷一区二区三区| 欧美最猛性xxxxx直播| 日韩免费一区二区| 免费高清不卡av| 日韩写真欧美这视频| 久久久久久一级片| 一区二区三区日本| 国产成人精品亚洲日本在线桃色| 欧美年轻男男videosbes| 欧美影视一区在线| 国产日韩欧美激情| 色综合久久88色综合天天6 | 亚洲成人av福利| 成人综合激情网| 亚洲日本va在线观看| 成人a免费在线看| 日韩欧美电影一二三| 国产目拍亚洲精品99久久精品| 亚洲综合区在线| 色综合av在线| 成人免费在线视频观看| 欧洲精品一区二区三区在线观看| 日韩精品一区第一页| 久久尤物电影视频在线观看| 国内外成人在线| 一个色妞综合视频在线观看| 懂色av中文字幕一区二区三区| 亚洲一区二区在线播放相泽| 成人一区二区三区在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩色综合| 亚洲成人在线免费| 国产精品毛片高清在线完整版| 一本久道中文字幕精品亚洲嫩| 国产成人免费xxxxxxxx| 午夜国产不卡在线观看视频| 一区二区三区精品视频在线| 不卡av电影在线播放| 国产成人福利片| 福利91精品一区二区三区| 国产电影精品久久禁18| 国产一区二区三区美女| 韩国成人在线视频| 成人美女在线观看| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧美一区日本一区韩国一区| 欧美日韩成人激情| 91精品国产入口| 欧美成人性战久久| 精品伦理精品一区| 国产欧美日本一区二区三区| 欧美国产精品中文字幕| 国产精品免费人成网站| 亚洲综合区在线| 日韩和欧美的一区| 国产主播一区二区| www.99精品| 欧美色欧美亚洲另类二区| 91精品国产入口| 国产日韩欧美精品综合| 亚洲女人的天堂| 日本伊人精品一区二区三区观看方式| 日本午夜一本久久久综合| 国产老女人精品毛片久久| 粉嫩av一区二区三区| 欧美羞羞免费网站| 亚洲精品一区二区三区影院| 国产精品天干天干在观线| 亚洲黄色小视频| 狠狠色丁香婷婷综合| 91久久一区二区| 亚洲精品一区二区在线观看| 有码一区二区三区| 国产一区二三区| 精品视频资源站| 国产精品网站导航| 美女看a上一区|