以下是html的示例:
<li class="index i1"
<ol id="rem">
<div class="bare">
<h3>
<a class="tlt mhead" href="https://www.myexample.com">
<li class="index i2"
<ol id="rem">
<div class="bare">
<h3>
<a class="tlt mhead" href="https://www.myexample2.com">
我想获取元素中每个href的值。是什么让这个列表成为第一个类中的类,其中class&#39;名称更改i1,i2。 所以我有一个计数器,当我去拿值时我会改变它。
i <- 1
stablestr <- "index "
myVal <- paste(stablestr , i, sep="")
所以即使尝试使用此
访问myVal索引的常规库profile<-remDr$findElement(using = 'xpath', "//*/input[@li = myVal]")
profile$highlightElement()
或使用此
的hrefprofile<-remDr$findElement(using = 'xpath', "/li[@class=myVal]/ol[@id='rem']/div[@id='bare']/h3/a[@class='tlt']")
profile$highlightElement()
xpath有什么问题吗?
答案 0 :(得分:0)
您的HTML结构无效。您的<li>
代码未正确关闭,似乎您将<ol>
与<li>
混淆。但是为了这个问题,我认为结构就像你写的一样,有正确关闭的<li>
标签。
然后,构建myVal
是不对的。如果您需要"index 1"
,它会产生"index i1"
。将"index i"
用于stablestr
。
现在为XPath:
//*/input[@li = myVal]
这显然是错误的,因为XML中没有input
。此外,您没有使用$
为变量添加前缀。最后,*
似乎没必要。试试这个:
//li[@class = $myVal]
在第二个XPath中,还有一些错误:
/li[@class=myVal]/ol[@id='rem']/div[@id='bare']/h3/a[@class='tlt']
^ ^ ^
missing $ should be @class is actually 'tlt mhead'
前两个问题很容易解决。第三个不是。您可以使用contains(@class, 'tlt')
,但如果该类是tltt
,那么这也可能匹配,这可能不是您想要的。无论如何,它可能足以满足您的用例。修复了XPath:
/li[@class=$myVal]/ol[@id='rem']/div[@class='bare']/h3/a[contains(@class, 'tlt')]