1 using System;
 2 using System.XPath;
 3 using System.Dom;
 4 
 5 void main()
 6 {
 7     ustring query = u"/philosophers/philosopher[@name='Socrates']";
 8     ustring xml;
 9     xml.Append(u"<philosophers>").
10         Append(    u"<philosopher name='Plato'/>").
11         Append(    u"<philosopher name='Aristotle'/>").
12         Append(    u"<philosopher name='Socrates'/>").
13         Append(u"</philosophers>");
14     UniquePtr<Document> doc = ParseDocument(xml"xml");
15     UniquePtr<XPathObject> o = Evaluate(querydoc.Get());
16     XPathNodeSet* ns = o.Get() as XPathNodeSet*;
17     if (ns != null)
18     {
19         int n = ns->Length();
20         for (int i = 0; i < n; ++i;)
21         {
22             Element* p = (*ns)[i] as Element*;
23             if (p != null)
24             {
25                 Console.Out() << p->GetAttribute(u"name") << endl();
26             }
27         }
28     }
29 }