1 using System;
  
   2 
  
   3 int main()
  
   4 {
  
   5     System.Lex.FileMap fileMap;
  
   6     auto parseResult = System.Xml.ParseXmlDocument("test.xml", fileMap);
  
   7     if (parseResult.Error())
  
   8     {
  
   9         Console.Error() << parseResult.GetErrorMessage() << endl();
  
  10         return 1;
  
  11     }
  
  12     System.Xml.Document* doc = parseResult.Value().Get();
  
  13     Result<UniquePtr<System.XPath.NodeSet>> evaluateResult = System.XPath.EvaluateToNodeSet("/test/alpha[@a=\"1\"]/beta/gamma/text()", doc);
  
  14     if (evaluateResult.Error())
  
  15     {
  
  16         Console.Error() << evaluateResult.GetErrorMessage() << endl();
  
  17         return 1;
  
  18     }
  
  19     System.XPath.NodeSet* nodeSet = evaluateResult.Value().Get();
  
  20     System.Xml.Element* element = nodeSet->ToXmlElement();
  
  21     System.Xml.Document resultDoc;
  
  22     resultDoc.AppendChild(element);
  
  23     System.Text.CodeFormatter formatter(Console.Out());
  
  24     auto writeResult = resultDoc.Write(formatter);
  
  25     if (writeResult.Error())
  
  26     {
  
  27         Console.Error() << writeResult.GetErrorMessage() << endl();
  
  28         return 1;
  
  29     }
  
  30     return 0;
  
  31 }