Ich habe vor Jahren auch versucht XPath unter TXMLDocument einzusetzen. Damals scheiterte ich mehrmals beim Versuch SelectNode des unterliegenden XMLDom zu verwenden (Analoge Lösung zur gezeigten Helper-Funktion).
Seither verwende ich unter Windows immer direkt IXMLDOMDocument2 durch Import der Type Library MSXML2_TLB. Damit ist der Einsatz von XPath trivial:
Delphi-Quellcode:
var
XMLDoc: IXMLDOMDocument2;
NodeList: IXMLDOMNodeList;
c: integer;
const
cFileName = 'test.groupproj';
cXPath = '/Project/ItemGroup/Projects/@Include';
begin
XMLDoc := ComsDOMDocument.Create;
try
XMLDoc.load(cFilename);
NodeList := XMLDoc.selectNodes(cXPath);
Ich würde mir auch eine Unterstützung von XPath in TXMLDocument wünschen, vermute aber, dass dies aber auf anderen Plattformen (Mac/iOS/Android) nicht einfach zu lösen ist.