[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdenonbeta/xpath
From:       Richard J. Moore <rich () kde ! org>
Date:       2004-03-26 23:52:19
Message-ID: 20040326235219.63229999B () office ! kde ! org
[Download RAW message or body]

CVS commit by rich: 

First attempt at using treewalker, crashes right now.


  M +28 -0     xpath_session.cpp   1.6


--- kdenonbeta/xpath/xpath_session.cpp  #1.5:1.6
@@ -104,4 +104,32 @@ Value Session::select( const DOM::DOMStr
 Value Session::select( const Query &/*query*/ )
 {
+    int exceptionCode;
+    DOM::NodeFilter *filter = new DOM::NodeFilter();
+    DOM::TreeWalkerImpl *walker = doc->createTreeWalker( doc->documentElement(),
+                                                         DOM::NodeFilter::SHOW_ELEMENT,
+                                                         filter->handle(),
+                                                         false,
+                                                         exceptionCode );
+    
+    // Handle walker failures
+    if ( !walker ) {
+        QString notSupported("Unable to create TreeWalker, operation not supported");
+        QString unknown( "An unknown error occurred, code %1" );
+
+        switch( exceptionCode ) {
+            case DOM::DOMException::NOT_SUPPORTED_ERR:
+                return String( notSupported );
+            default:
+                return String( unknown.arg( exceptionCode ) );
+        }
+    }
+
+    DOM::NodeImpl *node = walker->nextNode();
+    while ( node ) {
+        kdDebug() << "Node: " << node->nodeName() << endl;
+
+        node = walker->nextNode();
+    }
+
     return String( "Not implemented" );
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic