X-Git-Url: https://git.teslayout.com/public/public/public/?a=blobdiff_plain;f=source%2Fxml%2FXPath.cpp;h=8d46fd17781bb8f4889fff8b1ebd80075f8ef0ae;hb=5a6cba5fde2b2f538a7515f8293cc0a8d9589dfa;hp=6b7f0dbd9004b232c71b8ccb6fcab05b342c17ca;hpb=3e258840b15577cb8bda3cdedd0b9b88e16404b3;p=anna.git diff --git a/source/xml/XPath.cpp b/source/xml/XPath.cpp index 6b7f0db..8d46fd1 100644 --- a/source/xml/XPath.cpp +++ b/source/xml/XPath.cpp @@ -1,37 +1,9 @@ -// ANNA - Anna is Not Nothingness Anymore -// -// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo -// -// https://bitbucket.org/testillano/anna -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Authors: eduardo.ramos.testillano@gmail.com -// cisco.tierra@gmail.com +// ANNA - Anna is Not Nothingness Anymore // +// // +// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo // +// // +// See project site at http://redmine.teslayout.com/projects/anna-suite // +// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE // #include @@ -64,7 +36,7 @@ xml::XPath::XPath(const char* name) { * Los nodos se recuperan mediante los métodos node_begin, node_end y node */ void xml::XPath::apply(const Document& document, const char* expression, const int mode) -throw(RuntimeException) { +noexcept(false) { a_mode = mode; ConfigSkeleton configSkeleton(&XPath::callbackApply); @@ -75,7 +47,7 @@ throw(RuntimeException) { } bool xml::XPath::match(const Document& document, const char* expression, const int mode) -throw(RuntimeException) { +noexcept(false) { a_result = false; ConfigSkeleton configSkeleton(&XPath::callbackMatch); @@ -93,9 +65,8 @@ throw(RuntimeException) { } const xml::Node* xml::XPath::find(const Document& document, const char* expression, const int mode, const Exception::Mode::_v emode) -throw(RuntimeException) { +noexcept(false) { apply(document, expression, mode); - const xml::Node* result = NULL; Node::const_child_iterator ii = node_begin(); if(ii == node_end()) { @@ -125,7 +96,7 @@ throw(RuntimeException) { } void xml::XPath::skeleton(const Document& document, const char* expression, xml::XPath::ConfigSkeleton& config) -throw(RuntimeException) { +noexcept(false) { LOGDEBUG( string msg("xml::XPath::skeleton | Document: "); msg += functions::asString(document.getContent()); @@ -175,7 +146,7 @@ throw(RuntimeException) { * lo que nos obliga a recorrerlo en profundidad. */ void xml::XPath::initializeNamespaces(_xmlXPathContext* context, const Document& document) -throw(RuntimeException) { +noexcept(false) { xmlNode* root; if((root = xmlDocGetRootElement(document.a_handle)) == NULL) @@ -186,7 +157,7 @@ throw(RuntimeException) { } void xml::XPath::forwardNamespaces(_xmlXPathContext* context, _xmlNode* xmlNode) -throw(RuntimeException) { +noexcept(false) { while(xmlNode != NULL) { if(xmlNode->type == XML_ELEMENT_NODE) { for(xmlNs* ns = xmlNode->nsDef; ns != NULL; ns = ns->next) { @@ -243,7 +214,7 @@ void xml::XPath::callbackMatch(const _xmlNodeSet* nodes) { } void xml::XPath::text(Node* node, xmlNode* xmlNode) -throw(RuntimeException) { +noexcept(false) { bool isSeparator; const char* w; @@ -266,6 +237,9 @@ throw(RuntimeException) { node->createText(decode(xmlNode->content)); return; + + default: + ; } xmlNode = xmlNode->next;