XPath не может изменить исходный документ XML и не может создать новый документ XML.
Следовательно, для этого должна использоваться какая-то другая технология. XSLT - это язык, специально разработанный для выражения таких преобразований.
В большинстве браузеров вы можете обрабатывать документ XML с помощью таблицы стилей XSLT, идентифицируемой ассоциированной <?xml-stylesheet ?>
PI (инструкция processong) .
Большинство браузеров также предлагают какой-либо способ инициирования XSLT-преобразования в Javascript - прочитайте документацию вашего браузера.
Само преобразование XSLT очень просто:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="pTitleWanted" select="' Introduction to XML '"/>
<xsl:template match="node()|@*" name="identity">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="books">
<xsl:copy>
<xsl:apply-templates select="book[title = $pTitleWanted]"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
когда это преобразование применяется к предоставленному документу XML :
<books>
<book>
<title> Introduction to XML </title>
</book>
<book>
<title> Introduction to Javascript </title>
</book>
</books>
желаемый, правильный результат выдается :
<books>
<book>
<title> Introduction to XML </title>
</book>
</books>