peiyongz    2002/11/20 14:10:31

  Modified:    c/tests/ThreadTest ThreadTest.cpp
  Log:
  Using DOMWriter to dump DOM
  
  Revision  Changes    Path
  1.26      +19 -69    xml-xerces/c/tests/ThreadTest/ThreadTest.cpp
  
  Index: ThreadTest.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/tests/ThreadTest/ThreadTest.cpp,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- ThreadTest.cpp    15 Nov 2002 21:58:41 -0000      1.25
  +++ ThreadTest.cpp    20 Nov 2002 22:10:30 -0000      1.26
  @@ -71,6 +71,8 @@
   
   #include <xercesc/dom/DOM.hpp>
   
  +#include <xercesc/framework/StdOutFormatTarget.hpp>
  +
   XERCES_CPP_NAMESPACE_USE
   
   void clearFileInfoMemory();
  @@ -306,7 +308,6 @@
                                         //  for DOM, re-walk the tree.
                                         //  for SAX, can't do, just return previous 
value.
   
  -    void domPrint(const DOMNode *node); // Dump out the contents of a node,
       void domPrint();                  //   including any children.  Default (no 
param)
                                          //   version dumps the entire document.
   
  @@ -596,7 +597,23 @@
   {
       printf("Begin DOMPrint ...\n");
       if (gRunInfo.dom)
  -        domPrint(fXercesDOMParser->getDocument());
  +    {
  +        try
  +        {
  +            XMLCh tempStr[100];
  +            XMLString::transcode("LS", tempStr, 99);
  +            DOMImplementation *impl          = 
DOMImplementationRegistry::getDOMImplementation(tempStr);
  +            DOMWriter         *theSerializer = 
((DOMImplementationLS*)impl)->createDOMWriter();
  +            XMLFormatTarget   *myFormTarget  = new StdOutFormatTarget();
  +            DOMNode           *doc           = fXercesDOMParser->getDocument();
  +            theSerializer->writeNode(myFormTarget, *doc);
  +            delete theSerializer;
  +        }
  +        catch (...)
  +        {
  +            // do nothing
  +        }
  +    }
       printf("End DOMPrint\n");
   }
   
  @@ -607,70 +624,6 @@
       delete s;
   }
   
  -
  -void ThreadParser::domPrint(const DOMNode *node)
  -{
  -
  -    DOMNode          *child;
  -    DOMNamedNodeMap  *attributes;
  -
  -    switch (node->getNodeType() )
  -    {
  -    case DOMNode::ELEMENT_NODE:
  -        {
  -            printf("<");
  -            printString(node->getNodeName());   // the element name
  -
  -            attributes = node->getAttributes();  // Element's attributes
  -            int numAttributes = attributes->getLength();
  -            int i;
  -            for (i=0; i<numAttributes; i++) {
  -                domPrint(attributes->item(i));
  -            }
  -            printf(">");
  -
  -            for (child=node->getFirstChild(); child!=0; 
child=child->getNextSibling())
  -                domPrint(child);
  -
  -            printf("</");
  -            printString(node->getNodeName());
  -            printf(">");
  -            break;
  -        }
  -
  -
  -    case DOMNode::ATTRIBUTE_NODE:
  -        {
  -            printf(" ");
  -            printString(node->getNodeName());   // The attribute name
  -            printf("= \"");
  -            printString(node->getNodeValue());  // The attribute value
  -            printf("\"");
  -            break;
  -        }
  -
  -
  -    case DOMNode::TEXT_NODE:
  -    case DOMNode::CDATA_SECTION_NODE:
  -        {
  -            printString(node->getNodeValue());
  -            break;
  -        }
  -
  -    case DOMNode::ENTITY_REFERENCE_NODE:
  -    case DOMNode::DOCUMENT_NODE:
  -        {
  -            // For entity references and the document, nothing is dirctly
  -            //  printed, but we do want to process the chidren nodes.
  -            //
  -            for (child=node->getFirstChild(); child!=0; 
child=child->getNextSibling())
  -                domPrint(child);
  -            break;
  -        }
  -    }
  -}
  -
  -
   //----------------------------------------------------------------------
   //
   //   parseCommandLine   Read through the command line, and save all
  @@ -727,9 +680,6 @@
                   }
                   else
                       throw 1;
  -            }
  -            else if (strcmp(argv[argnum], "-dom") == 0) {
  -                gRunInfo.dom = true;
               }
               else if (strcmp(argv[argnum], "-reuse") == 0)
                   gRunInfo.reuseParser = true;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to