Для выражений XPath, которые вы привели в качестве примеров, требуется процессор XPath 2.0, но они не относятся к Saxon.
Выражение
for $row in /Item/SubItem[*]/SubSubItem return(concat($row, \"/ConcatValue\"))
- это ForExpression
, характерный для XPath 2.0, и его нелегко преобразовать в XPath 1.0, поскольку его результатом является последовательность строк, а в XPath 1.0 такого типа данных нет.
Выражение
/Item/SubItem[*]/SubSubItem/(add[@key=\"TheKey\"]/@value/string(), '')[1]
специфичен для XPath 2.0, поскольку в RHS оператора "/" используется выражение в скобках; и снова, потому что он возвращает последовательность строк.
Боюсь, я не могу сообщить вам, существуют ли библиотеки XPath 2.0, работающие в .NET Core, что, как я полагаю, является вашим требованием. Нельзя заставить Saxon работать на .NET Core из-за его зависимости от IKVM, которая не поддерживает эту платформу и которую (насколько я понимаю) нельзя легко приспособить для этого.
Обратите внимание, что XPath 2.0 является подмножеством XQuery 1.0, поэтому вы можете расширить поиск как для процессоров XQuery 1.0, так и для процессоров XPath 2.0.