我有一个HTML文档,我正在尝试为某些表行提取href。渲染后,该表有几列。每个名称都是一个超链接,但我试图捕获第四列中具有空值的名称的超链接。这是因为第四列包含终止日期,我只对活跃(非终止)员工感兴趣。
以下是HTML响应的一个子集:
<tr id="r6" >
<td>
<a href="benefits.asp?SK=177646822&STYPE=ELNAME&QRY=a">111-11-1111</a>
</td>
<td >
<a href="benefits.asp?SK=177646822&STYPE=ELNAME&QRY=a">Lastname</a>
</td>
<td nowrap="nowrap" >
<a href="benefits.asp?SK=177646822&STYPE=ELNAME&QRY=a">Firstname</a>
</td>
<td nowrap="nowrap" >
</td>
<td>
<a href="benefits.asp?SK=177646822&STYPE=ELNAME&QRY=a">743</a>
</td>
</tr>
<tr id="r7" >
<td>
<a href="benefits.asp?SK=177646782&STYPE=ELNAME&QRY=a">222-22-2222</a>
</td>
<td >
<a href="benefits.asp?SK=177646782&STYPE=ELNAME&QRY=a">Ignore</a>
</td>
<td nowrap="nowrap" >
<a href="benefits.asp?SK=177646782&STYPE=ELNAME&QRY=a">This</a>
</td>
<td nowrap="nowrap" >
<a href="benefits.asp?SK=177646782&STYPE=ELNAME&QRY=a">7/12/2010</a>
</td>
<td>
<a href="benefits.asp?SK=177646782&STYPE=ELNAME&QRY=a">1070</a>
</td>
</tr>
上面的第一个表格行(id = r6)缺少第4列中的日期字段,该字段存在于第二个字段中。所以我试图提取第一个而不是第二个的href。换句话说,“给我第4列中
的每个表行的第一个href。”
FirePath中的这个给了我表中的所有href: //表[@ ID = “SearchResult所”] // @ HREF
由于
答案 0 :(得分:0)
答案取决于您使用XPath的环境。具体来说,它取决于如何编码非中断空格。例如,在XSLT中,表达式看起来像
//tr[contains(td[4],' ')]/td[1]/a/@href
输入(略有修改)
<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY nbsp " ">
]>
<root>
<tr id="r6" >
<td>
<a href="YES">111-11-1111</a>
</td>
<td >
<a href="benefits.asp?SK=177646822STYPE=ELNAMEQRY=a">Lastname</a>
</td>
<td nowrap="nowrap" >
<a href="benefits.asp?SK=177646822STYPE=ELNAMEQRY=a">Firstname</a>
</td>
<td nowrap="nowrap" >
</td>
<td>
<a href="benefits.asp?SK=177646822STYPE=ELNAMEQRY=a">743</a>
</td>
</tr>
<tr id="r7" >
<td>
<a href="benefits.asp?SK=177646782STYPE=ELNAMEQRY=a">222-22-2222</a>
</td>
<td >
<a href="benefits.asp?SK=177646782STYPE=ELNAMEQRY=a">Ignore</a>
</td>
<td nowrap="nowrap" >
<a href="benefits.asp?SK=177646782STYPE=ELNAMEQRY=a">This</a>
</td>
<td nowrap="nowrap" >
<a href="benefits.asp?SK=177646782STYPE=ELNAMEQRY=a">7/12/2010</a>
</td>
<td>
<a href="benefits.asp?SK=177646782STYPE=ELNAMEQRY=a">1070</a>
</td>
</tr>
</root>
<强>样式表强>
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="text" omit-xml-declaration="yes" encoding="UTF-8" indent="yes" />
<xsl:template match="/">
<xsl:value-of select="//tr[contains(td[4],' ')]/td[1]/a/@href"/>
</xsl:template>
</xsl:transform>
<强>输出强>
YES