XPath 无法更改源 XML 文档,也无法生成新的 XML 文档。
因此,为此必须使用其他一些技术。XSLT 是一种专门为进行此类转换而设计的语言。
在大多数浏览器中,您可以使用由关联<?xml-stylesheet ?>
PI(处理指令)标识的 XSLT 样式表来处理 XML 文档。
大多数浏览器还提供了一些在 Javascript 中启动 XSLT 转换的方法——请阅读您的浏览器文档。
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>