XPath ne modifie pas un document XML source et c'est par la conception.
Pour produire un nouveau document XML à partir d'un document existant, la transformation est nécessaire. XSLT a été spécialement conçu pour transformer un ensemble d'arbres (y compris les documents XML) en arborescences de résultats.
Cette transformation:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/*">
<xsl:copy>
<xsl:copy-of select="@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
lorsqu'il est appliqué sur le document XML fourni:
<Customer id="">
<Name />
<Address />
</Customer>
produit le résultat souhaité, correct:
<Customer id=""/>
Bonne question (1). Voir ma réponse pour une solution courte XSLT. –