XPath - это язык запросов для документов XML. Как таковой он не может изменить структуру исходного XML-документа или создать новый XML-документ.
Задача создания нового измененного документа не может быть выполнена только с XPath.
Этого легко достичь с помощью XSLT :
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="tr[2]/td[1]"/>
</xsl:stylesheet>
когда это преобразование применяется к следующему документу XML:
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</table>
желаемый, правильный результат (все узлы, скопированные за исключением 1-го <td>
дочернего элемента второго <tr>
), получается:
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</table>