File: DOMQueryPathExpression.h

package info (click to toggle)
sope 5.12.6-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 16,592 kB
  • sloc: objc: 169,229; sh: 3,823; ansic: 3,409; javascript: 446; python: 318; makefile: 185
file content (68 lines) | stat: -rw-r--r-- 2,359 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
  Copyright (C) 2000-2005 SKYRIX Software AG

  This file is part of SOPE.

  SOPE is free software; you can redistribute it and/or modify it under
  the terms of the GNU Lesser General Public License as published by the
  Free Software Foundation; either version 2, or (at your option) any
  later version.

  SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
  WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
  License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with SOPE; see the file COPYING.  If not, write to the
  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
  02111-1307, USA.
*/

#ifndef __DOMQueryPathExpression_H__
#define __DOMQueryPathExpression_H__

#import <Foundation/NSObject.h>

@class NSString, NSArray;

@interface DOMQueryPathExpression : NSObject

/*
  Syntax:
    
    First the QueryPath is separated into path components, then the path
    components are evaluated:
    
    '-'   - placed in front of the path component, makes the search flat
    '/'   - select DOM root node (usually the document-element)
    '.'   - select current node
    '..'  - select DOM parent node
    '*'   - select all child elements (either deep or non-deep)
    '!x'  - evaluate keypath 'x' on node
    '?x'  - lookup processing instruction 'x' (either deep or non-deep)
    '@x'  - lookup attribute 'x',
              if x is '*', select all attributes (the map)
              x may contain a ':' for namespace queries
    
    any other string: select a child-node with the string as the name.

  Samples:

    "./head/title" - lookup the 'title' node contained in the 'head' child node
    "./@name"      - lookup the 'name' attribute of the current node
    "./?blah"      - lookup the PI 'blah' starting with the current node
    "./!values"    - call 'valueForKey:@"values"' on the current node
    "/-title"      - flat search for 'title' element
*/

+ (id)queryPathWithString:(NSString *)_string;
+ (id)queryPathWithComponents:(NSArray *)_string;
+ (NSArray *)queryPathComponentsOfString:(NSString *)_path;

- (id)evaluateWithNode:(id)_node; // DEPRECATED !!!
- (id)evaluateWithNodeList:(id)_nodeList;

@end

#endif /* __DOMQueryPathExpression_H__ */