Objective-C++ Preprocessor  5.0 with ARC & GC
C++ classes to enhance syntax and manage reference counting.
Public Member Functions | List of all members
OONode Class Reference

#include <objxml.h>

Inheritance diagram for OONode:
OODictionary< OOString > OOReference< NSMutableDictionary * >

Public Member Functions

oo_inline OONode ()
 
oo_inline OONode (CFNullRef obj)
 
oo_inline OONode (id node)
 
oo_inline OONode (const OONode &node)
 
oo_inline OONode (NSString *tagName)
 
oo_inline OONode (cOOString tagName, cOOString nodeText=nil)
 
oo_inline OONode (NSData *xml, OOXMLParserOpts flags=OOXMLDefaultParser)
 
oo_inline OONode (const OOData &xml, OOXMLParserOpts flags=OOXMLDefaultParser)
 
oo_inline OONode (const OONodeArraySub &sub)
 
oo_inline OONode (const OONodeSub &sub)
 
oo_inline OONodeoperator= (const OONode &node)
 
oo_inline OONodeoperator= (NSData *val)
 
oo_inline OONodeoperator= (const OONodeArraySub &sub)
 
oo_inline OONodeoperator= (const OONodeSub &sub)
 
OONodeparseXML (NSData *xml, OOXMLParserOpts flags=OOXMLDefaultParser)
 
OOData writeXML (OOXMLWriterOpts flags=OOXMLDefaultWriter) const
 
oo_inline OOData data () const
 
oo_inline operator OOData () const
 
oo_inline OOString string () const
 
oo_inline OONodeoperator+= (const OONode &val)
 
oo_inline OONodeSub operator[] (id sub) const
 
oo_inline OONodeSub operator[] (cOOString sub) const
 
oo_inline OONodeSub operator[] (const char *sub) const
 
oo_inline OOArraySub< OONodeoperator[] (int sub) const
 
oo_inline OONodeArray children () const
 
oo_inline OONode child (int which=0) const
 
oo_inline OOString text (int which=0) const
 
oo_inline operator OOString () const
 
- Public Member Functions inherited from OODictionary< OOString >
oo_inline OODictionary ()
 
oo_inline OODictionary (id obj)
 
oo_inline OODictionary (CFNullRef obj)
 
oo_inline OODictionary (const OODictionary &dict)
 
oo_inline OODictionary (const OOArraySub< OOString > &sub)
 
oo_inline OODictionary (const OODictionarySub< OOString > &sub)
 
oo_inline OODictionary (const OOReference< NSMutableDictionary * > &val)
 
oo_inline OODictionary (const OOReference< NSMutableArray * > &val)
 
oo_inline OODictionary (const OOStringSearch &search)
 
oo_inline OODictionary (int nilOrCapacity)
 
oo_inline OODictionary (NSMutableDictionary *dict)
 
oo_inline OODictionary (NSDictionary *dict)
 
oo_inline OODictionary (const char *val)
 
oo_inline OODictionary (const char **val)
 
oo_inline OODictionary (id e1, id e2,...) NS_REQUIRES_NIL_TERMINATION
 
oo_inline OODictionary (const std::map< std::string, OOString > &map)
 
oo_inline OODictionary (const std::map< std::string, std::string > &map)
 
oo_inline OOSlice keys ()
 
oo_inline OODictionary filter (BOOL(^callback)(id key, OOStringvalue))
 
oo_inline OODictionary map (id(^callback)(id key, OOStringvalue))
 
oo_inline OODictionary operator& (BOOL(^callback)(id object))
 
oo_inline OODictionary operator& (id(^callback)(id object))
 
oo_inline NSMutableDictionary * operator& () const
 
oo_inline OODictionary operator& (const OODictionary &val) const
 
oo_inline OODictionaryoperator= (const std::map< std::string, OOString > &map)
 
oo_inline OODictionaryoperator= (const std::map< std::string, std::string > &map)
 
oo_inline OODictionaryoperator= (id val)
 oo_inline operator int () const { return !*this ? 0 : (int)[[get() allKeys] count]; }
 
oo_inline OODictionaryoperator= (NSMutableDictionary *val)
 
oo_inline OODictionaryoperator= (NSDictionary *val)
 
oo_inline OODictionaryoperator= (int nilOrCapacity)
 
oo_inline OODictionaryoperator= (long nilOrCapacity)
 
oo_inline OODictionaryoperator= (const OODictionary &val)
 
oo_inline OODictionaryoperator= (const OOArraySub< OOString > &val)
 
oo_inline OODictionaryoperator= (const OODictionarySub< OOString > &val)
 
oo_inline OODictionaryoperator= (const OOReference< NSMutableDictionary * > &val)
 
oo_inline OODictionaryoperator= (const OOStringSearch &search)
 
oo_inline OODictionaryoperator= (const OOReference< NSMutableArray * > &val)
 
oo_inline OODictionaryoperator= (const char *val)
 
oo_inline OODictionaryoperator= (const char **val)
 
oo_inline operator std::map< std::string, OOString > ()
 
oo_inline operator std::map< std::string, std::string > ()
 
oo_inline BOOL operator== (NSDictionary *val) const
 
oo_inline BOOL operator== (NSMutableDictionary *val) const
 
oo_inline BOOL operator== (const OODictionary &val) const
 
oo_inline BOOL operator!= (NSDictionary *val) const
 
oo_inline BOOL operator!= (NSMutableDictionary *val) const
 
oo_inline BOOL operator!= (const OODictionary &val) const
 
oo_inline OODictionaryoperator-= (id val)
 
oo_inline OODictionaryoperator-= (const OOReference< NSMutableArray * > &val)
 
oo_inline OODictionaryoperator-= (const OOReference< NSMutableDictionary * > &val)
 
oo_inline OODictionaryoperator*= (const OODictionary< OOString > &val)
 
oo_inline OODictionaryoperator&= (const OODictionary &val)
 
oo_inline OODictionaryoperator|= (const OODictionary &val)
 
oo_inline OODictionary operator| (const OODictionary &val) const
 
oo_inline OODictionarySub
< OOString
operator[] (id sub) const
 
oo_inline OODictionarySub
< OOString
operator[] (NSString *sub) const
 
oo_inline OODictionarySub
< OOString
operator[] (cOOString sub) const
 
oo_inline OODictionarySub
< OOString
operator[] (const OOArraySub< id > &sub) const
 
oo_inline OODictionarySub
< OOString
operator[] (const OOArraySub< OOString > &sub) const
 
oo_inline OODictionarySub
< OOString
operator[] (const OODictionarySub< OOString > &sub) const
 
oo_inline OODictionarySlice
< OOString
operator[] (const OOReference< NSMutableArray * > &subs) const
 

Detailed Description

Subclass of OODictionary<OOString> to manipulate XML documents. On parsing as XML document one OONode is created for each element in the document with the attribute values stored as a NSString under a key: "@attributeName". Children of an element, be they pure text or sub elements are accumulated in an NSMutableArray under the key ".children" as well as in an array with the elements tagName (element name) as the key. This allows simple xpath expressions such as document["root/child"] to be evaluated by breaking up the path into the equivalent of document[@"root"][0][@"child"][0]. To gain efficient access to the text inside an element it is also stores under the key @".nodeText" in it's parent element.

Definition at line 107 of file objxml.h.

Constructor & Destructor Documentation

oo_inline OONode::OONode ( )
inline

Definition at line 116 of file objxml.h.

oo_inline OONode::OONode ( CFNullRef  obj)
inline

Definition at line 119 of file objxml.h.

oo_inline OONode::OONode ( id  node)
inline

Definition at line 122 of file objxml.h.

oo_inline OONode::OONode ( const OONode node)
inline

Definition at line 125 of file objxml.h.

oo_inline OONode::OONode ( NSString *  tagName)
inline

Definition at line 128 of file objxml.h.

oo_inline OONode::OONode ( cOOString  tagName,
cOOString  nodeText = nil 
)
inline

Definition at line 131 of file objxml.h.

oo_inline OONode::OONode ( NSData *  xml,
OOXMLParserOpts  flags = OOXMLDefaultParser 
)
inline

Definition at line 140 of file objxml.h.

oo_inline OONode::OONode ( const OOData xml,
OOXMLParserOpts  flags = OOXMLDefaultParser 
)
inline

Definition at line 143 of file objxml.h.

OONode::OONode ( const OONodeArraySub &  sub)
inline

Definition at line 468 of file objxml.h.

OONode::OONode ( const OONodeSub &  sub)
inline

Definition at line 467 of file objxml.h.

Member Function Documentation

oo_inline OONode OONode::child ( int  which = 0) const
inline

Definition at line 182 of file objxml.h.

oo_inline OONodeArray OONode::children ( ) const
inline

Definition at line 179 of file objxml.h.

oo_inline OOData OONode::data ( ) const
inline

Definition at line 157 of file objxml.h.

oo_inline OONode::operator OOData ( ) const
inline

Definition at line 158 of file objxml.h.

oo_inline OONode::operator OOString ( ) const
inline

Definition at line 189 of file objxml.h.

oo_inline OONode& OONode::operator+= ( const OONode val)
inline

Definition at line 162 of file objxml.h.

oo_inline OONode& OONode::operator= ( const OONode node)
inline

Definition at line 149 of file objxml.h.

oo_inline OONode& OONode::operator= ( NSData *  val)
inline

Definition at line 150 of file objxml.h.

OONode & OONode::operator= ( const OONodeArraySub &  sub)
inline

Definition at line 471 of file objxml.h.

OONode & OONode::operator= ( const OONodeSub &  sub)
inline

Definition at line 470 of file objxml.h.

OONodeSub OONode::operator[] ( id  sub) const
inline

Definition at line 430 of file objxml.h.

OONodeSub OONode::operator[] ( cOOString  sub) const
inline

Definition at line 434 of file objxml.h.

OONodeSub OONode::operator[] ( const char *  sub) const
inline

Definition at line 438 of file objxml.h.

OOArraySub< OONode > OONode::operator[] ( int  sub) const
inline

Definition at line 424 of file objxml.h.

OONode & OONode::parseXML ( NSData *  xml,
OOXMLParserOpts  flags = OOXMLDefaultParser 
)
inline

Definition at line 673 of file objxml.h.

oo_inline OOString OONode::string ( ) const
inline

Definition at line 160 of file objxml.h.

oo_inline OOString OONode::text ( int  which = 0) const
inline

Definition at line 185 of file objxml.h.

OOData OONode::writeXML ( OOXMLWriterOpts  flags = OOXMLDefaultWriter) const
inline

Definition at line 774 of file objxml.h.


The documentation for this class was generated from the following file: