我有从外部URL获取HTML代码的代码。获取的代码片段如下所示。
$output = '<div align="center" class="style12">
Monday-Thursday 3-6 March<br/>
<span class="style21">Band XYZ</span><br/>
Friday 7 March<br/>
<span class="style21">Band PQR</span><br/>
Saturday 8 March<br/>
<span class="style21">Band ABC</span><br/>
Monday-Thursday 10-13 March<br/>
<span class="style21">Band UVW</span><br/>
Friday-Saturday 14-15 March<br/>
<span class="style21">Band MNO</span>
</div>
';我正在尝试从上面的字符串中获取日期和带名,为此我使用XSLT和PHPDOM。下面是我到目前为止掌握的XSLT代码。
<xsl:for-each select="div/span">
<xsl:variable name="band_name" select="." />
<xsl:variable name="positions" select="position()+(position()-1)" />
<xsl:variable name="raw_event_date" select="parent::div/text()[$positions]" />
</xsl:for-each>当html格式良好时,这很好,因此这段代码只获取很少的事件日期。我想检索所有的日期,以便以其他方式进行检索,比如在选定的span标记(不包括BRs)之前获取文本。有人能给它点光吗??
谢谢
发布于 2014-03-03 10:23:12
使用以下样式表:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="div/span">
<xsl:value-of select="preceding-sibling::text()[1]"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>它产生:
Monday-Thursday 3-6 March
Friday 7 March
Saturday 8 March
Monday-Thursday 10-13 March
Friday-Saturday 14-15 Marchhttps://stackoverflow.com/questions/22143946
复制相似问题