Php 获取javascript参数的XPath查询

Php 获取javascript参数的XPath查询,php,xpath,onclick,arguments,Php,Xpath,Onclick,Arguments,我刚刚开始在php中使用XPath查询,虽然很多都是不言自明的,但我正在考虑是否有可能获得onclick函数的值 一个例子 <a id="moreButton" onclick="showMore('#content','/page/2');">Show More</a> 我想到的最好的方法是//a[@id='moreButton']/@onclick,它返回showMore'content','/page/2' 我是否可以进一步细化它,使其仅返回/page/2,或者我

我刚刚开始在php中使用XPath查询,虽然很多都是不言自明的,但我正在考虑是否有可能获得onclick函数的值

一个例子

<a id="moreButton" onclick="showMore('#content','/page/2');">Show More</a>
我想到的最好的方法是//a[@id='moreButton']/@onclick,它返回showMore'content','/page/2'


我是否可以进一步细化它,使其仅返回/page/2,或者我只需要使用php来解析我所拥有的内容?

您必须使用其他东西来解析它,XPath不理解JavaScript

实际上,这可以通过计算以下XPath表达式来生成:

对于onclick属性中指定的函数的第一个参数:

对于onclick属性中指定的函数的第二个参数:

基于XSLT的验证:


实际上,可以通过计算XPath表达式来生成两个想要的参数:
substring-before(substring-after(/*/@onclick, '('), ',')
substring-before(
     substring-after(substring-after(/*/@onclick, '('), ','),
     ')'
                )
<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>
<a id="moreButton"
  onclick="showMore('#content','/page/2');">Show More</a>
'#content'
===========

'/page/2'