実際、これは次のXPath式を評価することで生成できます。
属性で指定された関数の最初の引数の場合onclick
:
substring-before(substring-after(/*/@onclick, '('), ',')
属性で指定された関数の2番目の引数の場合onclick
:
substring-before(
substring-after(substring-after(/*/@onclick, '('), ','),
')'
)
XSLTベースの検証:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select=
"substring-before(substring-after(/*/@onclick, '('), ',')
"/>
===========
<xsl:copy-of select=
"substring-before(
substring-after(substring-after(/*/@onclick, '('), ','),
')'
)
"/>
</xsl:template>
</xsl:stylesheet>
この変換が提供されたXMLドキュメントに適用される場合:
<a id="moreButton"
onclick="showMore('#content','/page/2');">Show More</a>
2つのXPath式が評価され、この評価の結果が出力にコピーされます。
'#content'
===========
'/page/2'