dbertoni    00/09/05 12:33:41

  Modified:    c/src/DOMSupport DOMServices.cpp DOMServices.hpp
  Log:
  Fixed bug with getting data from comment and pi nodes. (conflictres22 and 23)
  
  Revision  Changes    Path
  1.17      +77 -13    xml-xalan/c/src/DOMSupport/DOMServices.cpp
  
  Index: DOMServices.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/DOMSupport/DOMServices.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- DOMServices.cpp   2000/09/05 02:24:43     1.16
  +++ DOMServices.cpp   2000/09/05 19:33:39     1.17
  @@ -64,11 +64,13 @@
   
   #include <XalanDOM/XalanAttr.hpp>
   #include <XalanDOM/XalanCDATASection.hpp>
  +#include <XalanDOM/XalanComment.hpp>
   #include <XalanDOM/XalanDocument.hpp>
   #include <XalanDOM/XalanDocumentFragment.hpp>
   #include <XalanDOM/XalanElement.hpp>
   #include <XalanDOM/XalanNamedNodeMap.hpp>
   #include <XalanDOM/XalanNodeList.hpp>
  +#include <XalanDOM/XalanProcessingInstruction.hpp>
   #include <XalanDOM/XalanText.hpp>
   
   
  @@ -271,6 +273,30 @@
                }
                break;
   
  +     case XalanNode::COMMENT_NODE:
  +             {
  +                     const XalanComment&             theComment =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const XalanComment&)node;
  +#else
  +                             static_cast<const XalanComment&>(node);
  +#endif
  +                     data = getNodeData(theComment);
  +             }
  +             break;
  +
  +     case XalanNode::PROCESSING_INSTRUCTION_NODE:
  +             {
  +                     const XalanProcessingInstruction&               thePI =
  +#if defined(XALAN_OLD_STYLE_CASTS)
  +                             (const XalanProcessingInstruction&)node;
  +#else
  +                             static_cast<const 
XalanProcessingInstruction&>(node);
  +#endif
  +                     data = getNodeData(thePI);
  +             }
  +             break;
  +
        default:
                // ignore
                break;
  @@ -290,6 +316,14 @@
   
   
   XalanDOMString
  +DOMServices::getNodeData(const XalanComment& comment)
  +{
  +     return comment.getData();
  +}
  +
  +
  +
  +XalanDOMString
   DOMServices::getNodeData(const XalanDocument&        document)
   {
        XalanDOMString  data;
  @@ -298,12 +332,19 @@
   
        while(child != 0)
        {
  -             const XalanDOMString    nodeData =
  -                                     getNodeData(*child);
  +             const XalanNode::NodeType       theType = child->getNodeType();
   
  -             if(0 < length(nodeData))
  +             if (theType == XalanNode::ELEMENT_NODE ||
  +                     theType == XalanNode::TEXT_NODE ||
  +                     theType == XalanNode::CDATA_SECTION_NODE)
                {
  -                     data += nodeData;
  +                     const XalanDOMString    nodeData =
  +                                             getNodeData(*child);
  +
  +                     if(0 < length(nodeData))
  +                     {
  +                             data += nodeData;
  +                     }
                }
   
                child = child->getNextSibling();
  @@ -326,14 +367,22 @@
   
        for(unsigned int i = 0; i < n; ++i)
        {
  -             assert(nl->item(i) != 0);
  +             const XalanNode* const          child = nl->item(i);
  +             assert(child != 0);
   
  -             const XalanDOMString    nodeData =
  -                                     getNodeData(*nl->item(i));
  +             const XalanNode::NodeType       theType = child->getNodeType();
   
  -             if(0 < length(nodeData))
  +             if (theType == XalanNode::ELEMENT_NODE ||
  +                     theType == XalanNode::TEXT_NODE ||
  +                     theType == XalanNode::CDATA_SECTION_NODE)
                {
  -                     data += nodeData;
  +                     const XalanDOMString    nodeData =
  +                                             getNodeData(*child);
  +
  +                     if(0 < length(nodeData))
  +                     {
  +                             data += nodeData;
  +                     }
                }
        }
   
  @@ -351,18 +400,33 @@
   
        while(child != 0)
        {
  -             const XalanDOMString    nodeData =
  -                                     getNodeData(*child);
  +             const XalanNode::NodeType       theType = child->getNodeType();
   
  -             if(0 < length(nodeData))
  +             if (theType == XalanNode::ELEMENT_NODE ||
  +                     theType == XalanNode::TEXT_NODE ||
  +                     theType == XalanNode::CDATA_SECTION_NODE)
                {
  -                     data += nodeData;
  +                     const XalanDOMString    nodeData =
  +                                             getNodeData(*child);
  +
  +                     if(0 < length(nodeData))
  +                     {
  +                             data += nodeData;
  +                     }
                }
   
                child = child->getNextSibling();
        }
   
        return data;
  +}
  +
  +
  +
  +XalanDOMString
  +DOMServices::getNodeData(const XalanProcessingInstruction&   pi)
  +{
  +     return pi.getData();
   }
   
   
  
  
  
  1.14      +20 -0     xml-xalan/c/src/DOMSupport/DOMServices.hpp
  
  Index: DOMServices.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/DOMSupport/DOMServices.hpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DOMServices.hpp   2000/09/05 02:24:43     1.13
  +++ DOMServices.hpp   2000/09/05 19:33:39     1.14
  @@ -75,10 +75,12 @@
   
   
   class XalanAttr;
  +class XalanComment;
   class XalanDocument;
   class XalanDocumentFragment;
   class XalanElement;
   class XalanNode;
  +class XalanProcessingInstruction;
   class XalanText;
   
   
  @@ -176,6 +178,15 @@
        /**
         * Retrieves data for node
         * 
  +      * @param attribute DOM node whose data is to be returned
  +      * @return a string representation of the node's data
  +      */
  +     static XalanDOMString
  +     getNodeData(const XalanComment&         comment);
  +
  +     /**
  +      * Retrieves data for node
  +      * 
         * @param document DOM node whose data is to be returned
         * @return a string representation of the node's data
         */
  @@ -199,6 +210,15 @@
         */
        static XalanDOMString
        getNodeData(const XalanElement&         element);
  +
  +     /**
  +      * Retrieves data for node
  +      * 
  +      * @param pi DOM node whose data is to be returned
  +      * @return a string representation of the node's data
  +      */
  +     static XalanDOMString
  +     getNodeData(const XalanProcessingInstruction&   pi);
   
        /**
         * Retrieves data for node
  
  
  

Reply via email to