]> err.no Git - sope/commitdiff
improved KVC support in DOM objects
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sat, 30 Jul 2005 16:12:17 +0000 (16:12 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Sat, 30 Jul 2005 16:12:17 +0000 (16:12 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@948 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-xml/DOM/ChangeLog
sope-xml/DOM/DOMDocument.m
sope-xml/DOM/DOMNode.m
sope-xml/DOM/README
sope-xml/DOM/Version

index ba193a47a6c7116e4b14fa34ed3ab15c7b9d7671..d9800e7c6c2f2f50f8e361294dda7bccb4987da4 100644 (file)
@@ -1,3 +1,13 @@
+2005-07-30  Helge Hess  <helge.hess@opengroupware.org>
+
+       * v.4.5.17
+
+       * DOMDocument.m: evaluate KVC keys starting with a slash '/' as query
+         path expressions
+
+       * DOMNode.m: changed to return 'nil' for unknown KVC keys instead of
+         raising an exception
+
 2005-05-03  Helge Hess  <helge.hess@opengroupware.org>
 
        * DOMTreeWalker.m: fixed a MacOSX 10.4 warning (v4.5.16)
index cd5da1f87ce1e8fdd2551565a99674e0e85f0d71..a47ee2d09b667de7ce61de9e473974a957019be3 100644 (file)
@@ -28,6 +28,7 @@
 #include <DOM/DOMAttribute.h>
 #include <DOM/DOMEntityReference.h>
 #include "DOMSaxBuilder.h"
+#include "DOMNode+QueryPath.h"
 #include "common.h"
 
 //#define PROF_DEALLOC 1
   return [self documentElement];
 }
 
+/* Key/Value Coding */
+
+- (id)valueForKey:(NSString *)_key {
+  if ([_key hasPrefix:@"/"])
+    return [self lookupQueryPath:_key];
+  
+  return [super valueForKey:_key];
+}
+
 @end /* NGDOMDocument */
index 5aa908b6804023a3ba75825d8613607d3a1596f0..d7e6c4e003b7f399361928debee3f4bd51386d91 100644 (file)
@@ -198,6 +198,13 @@ NSString *DOMNodeValue(id _node) {
   return nil;
 }
 
+/* key/value coding */
+
+- (id)valueForUndefinedKey:(NSString *)_key {
+  /* default is to raise an exception, we just return nil */
+  return nil;
+}
+
 /* description */
 
 - (NSString *)description {
index dc7a49fb15d501b1a2bf2547d52fb9934d99784c..449282d7cac26b1f7faa1ac5fa8a4558b1fddcce 100644 (file)
@@ -16,6 +16,20 @@ How to build a DOM tree ?
   id<DOMDocument> document
     = [builder buildFromSource:@"myfile.xml"];
 
+
+KVC
+===
+
+You can navigate the DOM tree with standard key/value coding. The NGDOMDocument
+will treat all KVC keys starting with a "/" as query path expressions.
+
+Samples:
+  document.documentElement             => root DOMElement
+  document.documentElement.childNodes  => NSArray containing the root children
+  document./uid                        => DOMElement or array! matching 'uid'
+  document./uid.textValue              => text-value of 'uid' element
+
+
 Some info on classes ...
 ========================
 
index 0a8bca08b028c66e6050ed1d0523f0c70aac5617..3c3eedfd9be9674738563e52ca04e222c558e0b0 100644 (file)
@@ -1,3 +1,3 @@
 # version file
 
-SUBMINOR_VERSION:=16
+SUBMINOR_VERSION:=17