使用正则表达式或 xpath 从包含特定文本的 html 中提取 <td> 值
Extract <td> value using regexp or xpath from an html which contains a certain text
我正在使用 JMeter,我想从包含特定值的行的响应中提取列的值:
具体来说,我想获取包含 677777 的行,并为该行获取列
dv-col dv-col-type-enum dv-col-task-state 在这种特定情况下是 Open.
尝试了几个正则表达式但还没有成功,所以欢迎任何帮助或线索。
<!DOCTYPE html>
<html lang="en">
<head></head>
<body class="bootstrap env-dlt">
<div id="main-container" class="container-fluid">
<div id="main-header" class="header"></div>
<div class="section">
<div class="dv-filters large-content"></div>
<div class="dv-container large-content">
<table class="table table-striped table-bordered table-condensed">
<thead></thead>
<tbody class="taskList">
<tr>..</tr>
<tr>..</tr>
<tr>..</tr>
<tr>
<td class="dv-col dv-col-type-string dv-col-task-panel"></td>
<td class="dv-col dv-col-type-string dv-col-task-phase"></td>
<td class="dv-col dv-col-type-long dv-col-task-proposal_reference">
<a href="/presentation/workflow/tasks/111111/detail.html">
677777
</a>
</td>
<td class="dv-col dv-col-type-long dv-col-task-proposal_acronym"></td>
<td class="dv-col dv-col-type-enum dv-col-task-state">
Open
</td>
<td class="dv-col dv-col-type-long dv-col-task-owner"></td>
<td class="dv-col dv-col-type-date dv-col-task-deadline"></td>
<td class="dv-col dv-col-type-double dv-col-task-score"></td>
<td class="dv-col dv-col-type-action"></td>
</tr>
<tr>..</tr>
<tr>..</tr>
<tr>..</tr>
Xpath 可能是替代方案?
谢谢
获取期望结果的 xpath 是:
//tr[td/a[contains(text(),"677777")]]/td[@class="dv-col dv-col-type-enum dv-col-task-state"]/text()
首先找到包含<td>
的<tr>
其中有一个<a>
的text()包含,或者等于677777,然后找到<td>
标签class
是目标 <tr>
下的 "dv-col dv-col-type-enum dv-col-task-state"
I want to get the row which contains 677777
使用 XPath(选择整个行节点):
//tr[*=677777]
获取列数据测试@class
属性的内容:
//tr[*=677777]/td[@class[contains(.,"dv-col-task-state") and contains(.,"dv-col-type-enum") ]]
(假设您没有或不关心包含那些 class 名称的匹配 classes。例如:dv-col-task-state-something
。如果这是一个问题,您需要连接并匹配 class 属性中的 white-space 以确保它们代表个人 class 名称)
我正在使用 JMeter,我想从包含特定值的行的响应中提取列的值:
具体来说,我想获取包含 677777 的行,并为该行获取列 dv-col dv-col-type-enum dv-col-task-state 在这种特定情况下是 Open.
尝试了几个正则表达式但还没有成功,所以欢迎任何帮助或线索。
<!DOCTYPE html>
<html lang="en">
<head></head>
<body class="bootstrap env-dlt">
<div id="main-container" class="container-fluid">
<div id="main-header" class="header"></div>
<div class="section">
<div class="dv-filters large-content"></div>
<div class="dv-container large-content">
<table class="table table-striped table-bordered table-condensed">
<thead></thead>
<tbody class="taskList">
<tr>..</tr>
<tr>..</tr>
<tr>..</tr>
<tr>
<td class="dv-col dv-col-type-string dv-col-task-panel"></td>
<td class="dv-col dv-col-type-string dv-col-task-phase"></td>
<td class="dv-col dv-col-type-long dv-col-task-proposal_reference">
<a href="/presentation/workflow/tasks/111111/detail.html">
677777
</a>
</td>
<td class="dv-col dv-col-type-long dv-col-task-proposal_acronym"></td>
<td class="dv-col dv-col-type-enum dv-col-task-state">
Open
</td>
<td class="dv-col dv-col-type-long dv-col-task-owner"></td>
<td class="dv-col dv-col-type-date dv-col-task-deadline"></td>
<td class="dv-col dv-col-type-double dv-col-task-score"></td>
<td class="dv-col dv-col-type-action"></td>
</tr>
<tr>..</tr>
<tr>..</tr>
<tr>..</tr>
Xpath 可能是替代方案?
谢谢
获取期望结果的 xpath 是:
//tr[td/a[contains(text(),"677777")]]/td[@class="dv-col dv-col-type-enum dv-col-task-state"]/text()
首先找到包含<td>
的<tr>
其中有一个<a>
的text()包含,或者等于677777,然后找到<td>
标签class
是目标 <tr>
I want to get the row which contains 677777
使用 XPath(选择整个行节点):
//tr[*=677777]
获取列数据测试@class
属性的内容:
//tr[*=677777]/td[@class[contains(.,"dv-col-task-state") and contains(.,"dv-col-type-enum") ]]
(假设您没有或不关心包含那些 class 名称的匹配 classes。例如:dv-col-task-state-something
。如果这是一个问题,您需要连接并匹配 class 属性中的 white-space 以确保它们代表个人 class 名称)