00001
00002
00003 #include "xmlBase/XmlParser.h"
00004 #include "xmlBase/Dom.h"
00005 #include <xercesc/dom/DOMElement.hpp>
00006 #include <xercesc/dom/DOMNodeList.hpp>
00007
00008 #include <string>
00009 #include <iostream>
00010 #include <fstream>
00011
00012 std::string doc_string
00013 (
00014 "<?xml version=\"1.0\" ?>"
00015 "<!DOCTYPE TopElement ["
00016 " <!ELEMENT TopElement (ChildElt*) >"
00017 " <!ELEMENT ChildElt (ChildWithText | EmptyChild)* >"
00018 " <!ATTLIST ChildElt anAttribute CDATA #REQUIRED >"
00019 " <!ELEMENT ChildWithText (#PCDATA) >"
00020 " <!ATTLIST ChildWithText attr CDATA #IMPLIED>"
00021 " <!ELEMENT EmptyChild EMPTY> ]"
00022 ">"
00023 "<TopElement>"
00024 " <ChildElt anAttribute=\"I'm nested but empty\" />"
00025 " <ChildElt anAttribute=\"I'm nested with content\">"
00026 " <ChildWithText attr=\"text content\" >"
00027 " Text content here."
00028 " </ChildWithText>"
00029 " <EmptyChild />"
00030 " </ChildElt>"
00031 "</TopElement>"
00032 );
00033
00034 int main() {
00035 XERCES_CPP_NAMESPACE_USE
00036
00037 xmlBase::XmlParser parser;
00038
00039 DOMDocument* doc = parser.parse(doc_string);
00040
00041 if (doc != 0) {
00042 std::cout << "Document successfully parsed" << std::endl;
00043 DOMElement* docElt = doc->getDocumentElement();
00044 xmlBase::Dom::prettyPrintElement(docElt, std::cout, "");
00045 }
00046 return(0);
00047 }
00048
00049
00050