XPath не является инструментом преобразования, поэтому вы не можете использовать его в одиночку, чтобы делать то, что вы хотите. Возможно, вы думаете о XSL , который использует XPath и способен преобразовывать данные.
Выражение XPath, которое может извлечь данные из вашего примера XML, будет
/Authors/Author
Тогда во всем, что вы используете для выполнения выражения XPath над документом (будь то XSL или некоторая библиотека XML), вы можете циклически перебирать результат и создавать нужный вам вывод.
В XSL вы могли бы сделать что-то вроде этого:
<xsl:for-each select="/Authors/Author">
<xsl:if test="position() != 1">
<xsl:text>, </xsl:text>
</xsl:if>
<xsl:value-of select="text()"/>
</xsl:for-each>
Другие языки были бы более простыми, вероятно, с использованием функции join
языка, если она есть.