我在尝试在XPATH 1.0中查找特定子字符串时遇到麻烦。此表达式将在代码查看工具 SonarQube 中用于设置约束。
这是我当前在XPATH 3.0中使用的表达式,并且我已经进行了一些研究以查找转换,但是该表达式的语法在XPATH 3.0中和在1.0中一样是正确的。我是忽略了某件事还是只是误导了
//*[contains(.,'@example.com')]
据我了解,这使用XPATH 1.0固有的 contains()函数在包含属性/descendant-or-self::node()/
的任何example.com
路径之前搜索路径<form method="post" id="activeinactive" action="activeInactive.php" onsubmit="return ConfirmActiveInactive()">
<?php
if($no_of_users>1){
echo '
<table class="paginated table table-striped table-hover">
<thead>
<tr>
<th>Active</th>
<th>Username</th>
<th>Email</th>
<th>Address</th>
<th>Phone</th>
<th></th>
</tr>
</thead>
<tbody>';
while($userdetails = mysqli_fetch_array($user_details, MYSQLI_ASSOC)){
echo '<tr id="disableuser">';
echo '<td>
<span class="custom-checkbox">';
if($userdetails['is_active']==true){
echo '<input type="checkbox" name="options[]" value="'.$userdetails['member_id'].'" checked=checked disabled>
<label></label>';
}
echo '</span>
</td>';
echo '<td>'.$userdetails['username'].'</td>
<td>'.$userdetails['email'].'</td>
<td>'.$userdetails['address'].'</td>
<td>'.$userdetails['phone'].'</td>
<td>
<a href="" class="edit" data-toggle="modal" class="not-active"><i class="material-icons" data-toggle="tooltip" title="Edit"></i></a>
<a href="" class="delete" name="delete" data-toggle="modal" Onclick="return ConfirmDelete()"><i class="material-icons" data-toggle="tooltip" title="Delete"></i></a>
</td>
</tr>';
}
echo '</tbody>
</table>';
}
?>
</form>
答案 0 :(得分:1)
//*[contains(.,'@example.com')]
表示“查找具有文本内容的任何类型的节点,其中包含子字符串'@ example.com'。如果要“找到具有属性且其值包含'@ example.com'的节点” ,则需要:
任意属性中的
://*[contains(@*, "@example.com")]
在特定属性中:
//*[contains(@email, "@example.com")]
如果您想获得必需的@attribute
的价值:
//*[contains(@email, "@example.com")]/@email