XPath 最初に見つかったノードのみを処理する
以下のような xsl の場合,最初に見つかった要素のみを処理したい場合に
XPath はどのような式になりますでしょうか?
例えば xsl:copy-of select="$v//p/@*" とすると,配下すべての p 要素の属性がコピーされてしまいます。最初の要素のみを処理したいのです。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"
version="2.0">
<xsl:variable name="v">
<a>
<p att1="a" att2="b" >
<p att3="c">
<p >
</p>
</p>
</p>
</a>
</xsl:variable>
<xsl:template match="/">
<p>
<xsl:copy-of select="????"/>
</p>
</xsl:template>
</xsl:stylesheet>
期待する結果
<?xml version="1.0" encoding="UTF-8"?><p att1="a" att2="b" />
宜しくお願い致します。