void DOMRecursive() { TDOMParser *domParser = new TDOMParser(); TString dir = gSystem->DirName(gInterpreter->GetCurrentMacroName()); domParser->SetValidate(false); // do not validate with DTD domParser->ParseFile(dir+"/person.xml"); TXMLNode *node = domParser->GetXMLDocument()->GetRootNode(); ParseContext(node); }
Int_t ParseFile(TString filename) { TDOMParser *domParser = new TDOMParser(); Int_t parsecode = domParser->ParseFile(filename); if (parsecode < 0) { cerr << domParser->GetParseCodeMessage(parsecode) << endl; return -1; } TXMLNode * node = domParser->GetXMLDocument()->GetRootNode(); ParsePersonList(node); return 0; }
void testUnfold6() { TDOMParser parser; ofstream dtdFile("tunfoldbinning.dtd"); TUnfoldBinningXML::WriteDTD(dtdFile); dtdFile.close(); TString dir = gSystem->DirName(__FILE__); Int_t error=parser.ParseFile(dir+"/testUnfold6binning.xml"); if(error) cout<<"error="<<error<<" from TDOMParser\n"; TXMLDocument const *XMLdocument=parser.GetXMLDocument(); TUnfoldBinningXML *binning= TUnfoldBinningXML::ImportXML(XMLdocument,"binning"); if(!binning) { cout<<"error: can not read binning (document empty?)\n"; } else { cout<<"Binning scheme:\n =================================\n"; binning->PrintStream(cout); Int_t *binMap=binning->CreateEmptyBinMap(); PrintBinMap(binning,"CreateEmptyBinMap",binMap); TUnfoldBinning const *branch1=binning->FindNode("branch1"); branch1->FillBinMap1D(binMap,"y[C]",2); PrintBinMap(binning,"branch1->FillBinMap1D(...,\"y[C]\",...,2)",binMap); delete binMap; binMap=binning->CreateEmptyBinMap(); TUnfoldBinning const *branch2=binning->FindNode("branch2"); branch2->FillBinMap1D(binMap,"x[C]",7); PrintBinMap(binning,"branch2->FillBinMap1D(...,\"x[C]\",...,7)",binMap); delete binMap; binMap=binning->CreateEmptyBinMap(); binning->FillBinMap1D(binMap,"y[C]",1); PrintBinMap(binning,"binning->FillBinMap1D(...,\"y[C]\",...,1)",binMap); binning->ExportXML("testUnfold6.out.xml"); } }