Mercurial > pub > Impl
comparison Lib/IMPL/DOM/Node.pm @ 24:7f00786f8210
Первая рабочая реазизация схемы и навигаторов
| author | Sergey |
|---|---|
| date | Mon, 05 Oct 2009 00:48:49 +0400 |
| parents | fafe56cfcd69 |
| children | dd4d72600c69 |
comparison
equal
deleted
inserted
replaced
| 23:716b287d4795 | 24:7f00786f8210 |
|---|---|
| 165 | 165 |
| 166 my @result; | 166 my @result; |
| 167 | 167 |
| 168 if (ref $query eq 'CODE') { | 168 if (ref $query eq 'CODE') { |
| 169 @result = grep &$query($_), @{$this->childNodes}; | 169 @result = grep &$query($_), @{$this->childNodes}; |
| 170 } elsif (ref $query eq 'ARRAY' ) { | |
| 171 my %keys = map (($_,1),@$query); | |
| 172 @result = grep $keys{$_->nodeName}, @{$this->childNodes}; | |
| 170 } elsif (defined $query) { | 173 } elsif (defined $query) { |
| 171 @result = grep $_->nodeName eq $query, @{$this->childNodes}; | 174 @result = grep $_->nodeName eq $query, @{$this->childNodes}; |
| 172 } else { | 175 } else { |
| 173 if (wantarray) { | 176 if (wantarray) { |
| 174 return @{$this->childNodes}; | 177 return @{$this->childNodes}; |
| 244 } else { | 247 } else { |
| 245 return $this->{$_propertyMap}{$name}; | 248 return $this->{$_propertyMap}{$name}; |
| 246 } | 249 } |
| 247 } | 250 } |
| 248 | 251 |
| 252 sub qname { | |
| 253 $_[0]->{$nodeName}; | |
| 254 } | |
| 255 | |
| 256 sub path { | |
| 257 my ($this) = @_; | |
| 258 | |
| 259 if ($this->parentNode) { | |
| 260 return $this->parentNode->path.'.'.$this->qname; | |
| 261 } else { | |
| 262 return $this->qname; | |
| 263 } | |
| 264 } | |
| 265 | |
| 249 1; | 266 1; |
