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);
}
示例#2
0
   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;
   }
示例#3
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");
  }
}