我已经创建了一些xpath表达式来定位第一个项目" s" index"在" h4"之后。但是,我做错了,这就是为什么它根本不起作用。我希望有人可以看看它并给我一个解决方法。 我尝试过:
//div[@id="schoolDetail"][1]/text() --For the Name
//div[@id="schoolDetail"]//br[0]/text() --For the PO Box
我希望表达式找到的项目的元素粘贴在下面:
<div id="schoolDetail" style=""><h4>School Detail: <a href="javascript:backToList();">Click here to go back to list</a></h4> GOLD DUST FLYING SERVICE, INC.<br>PO Box 75<br><br>TALLADEGA AL 36260<br> <br>Airport: TALLADEGA MUNICIPAL (ASN)<br>Manager: JEAN WAGNON<br>Phone: 2563620895<br>Email: golddustflyingse@bellsouth.net<br>Web: <br><br><a href="https://www.aopa.org/airports/ASN/business/19978" target="_new">View in AOPA Airports</a> (Opens in new tab) <br><br></div>
顺便说一句,结果值应为:
答案 0 :(得分:1)
尝试通过适当的索引找到所需的文本节点:
//div[@id="schoolDetail"]/text()[1] // For "GOLD DUST FLYING SERVICE, INC."
//div[@id="schoolDetail"]/text()[2] // For "PO Box 75"
答案 1 :(得分:1)
获取两个元素的定位器:
let searchedProducts = List([product1, product2, product3]) //these are Product instances
let results = Array(realm.objects(Shelf.self)).filter{
if $0.products.count != searchedProducts.count {
return false
}
for product in $0.products {
if searchedProducts.index(of: product) == nil {
return false
}
}
return true
}
说明:
{!! Form::select('сity_from', $cities, isset($tour->сity_from) ? $tour->сity_from : null ) !!}
- xPath可以使用方括号中的谓词对值进行排序。
//*[@id='schoolDetail']/text()[position()<3]
- 可以是整数,在这种情况下,它会自动与元素的位置进行比较[x]
:
x
- 搜索第二个div,类似于[position()=x]
如果谓词//div[2]
不是整数 - 它将自动转换为布尔值,并且仅返回元素,其中x的结果为div[position()=2]
,例如:
[x]
- 搜索前四个div元素,true
,但在第5个及以上元素位置将超过4
重要提示:请在此页面上查看以下定位器: https://www.w3schools.com/tags/ref_httpmessages.asp
div[position() <= 4]
- 将返回每个表格中的每一行! (12发现 元素,与页面上的表格相同)
4 <= 4,
- 将返回第一个找到的表中的第一行(找到1个元素)