Interessante Lösung. Ich war bisher immer über xsl und transformNode gegangen. Sprich zum Beispiel:
Delphi-Quellcode:
private
FXmlDoc: DOMDocument60;
...
var
StyleSheetDoc: DOMDocument60;
begin
StyleSheetDoc := CoDOMDocument60.Create;
StyleSheetDoc.async := False;
if StyleSheetDoc.loadXML('<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">'#13#10
+ '<xsl:output method="text" />'#13#10
+ '<xsl:template match="/">'#13#10
+ '<xsl:value-of select="' + BuildXPathQuery(...) + '" />'#13#10
+ '</xsl:template>'#13#10
+ '</xsl:stylesheet>') then
Result := FXmlDoc.transformNode(StyleSheetDoc)
else
Result := '';
end;