使用XPath提取HTML表格字段无结果,寻求问题排查方案
问题分析与修正方案
你的XPath只选中了<td>元素本身,但没有提取节点内的文本内容,所以返回的是元素对象而非实际文本值,导致看起来没获取到结果。
修正后的XPath写法
直接提取文本并处理多余空格(包括 这类空格实体),推荐使用normalize-space():
array( 'name' => "normalize-space(.//table//tr//td[1])", 'value' => "normalize-space(.//table//tr//td[2])", ),
如果需要保留原始空格结构,获取所有文本片段,可以用//text():
array( 'name' => ".//table//tr//td[1]//text()", 'value' => ".//table//tr//td[2]//text()", ),
额外优化
因为HTML结构层级明确,路径可以简化为直接子节点查找,效率更高:
array( 'name' => "normalize-space(.//table/tr/td[1])", 'value' => "normalize-space(.//table/tr/td[2])", ),
内容的提问来源于stack exchange,提问作者Linux
相关产品推荐
相关产品推荐

