我想提取一个xpath字段并根据字段中包含的内容进行操作,在这种情况下,我希望我的xpath检测该字段是否包含单词,并且是否要进行X处理,否则请执行Y处理,然后将其插入我的拼凑项目
我将尝试用伪代码和我的实际xpath代码进行解释
我尝试使用.extract(),将字段作为字符串处理,然后将其插入我的项目中,但遇到了很多不同的问题,而且很混乱
#my current code
new.add_xpath('source',"substring-before(.//h3/a/@href,'?')")
#what i wanna achieve
new.add_xpath('source',if .//h3/a/@href contains "profile.php" :
substring-before(.//h3/a/@href,'id')
else :
substring-before(.//h3/a/@href,'?'))
id希望提取的字段为./XXX.XXX。?。XXX(如果其中包含profile.php),如果不是./XXX.XXX,则为
答案 0 :(得分:1)
我假设您是因为python而使用XPath 1.0。然后,您可以使用以下表达式直接输出所需的字符串:
substring-before(
.//h3/a/@href,
concat(
substring(
'id',
1 div contains(.//h3/a/@href, 'profile.php')
),
substring(
'?',
1 div not(contains(.//h3/a/@href, 'profile.php'))
)
)
)
在http://www.xpathtester.com/xpath/cca4e5a85df20137b923d0b6f06bf6cc中测试
注意:像在C中一样,布尔值被强制转换为数字0(false()
和1(true()
),那么您可以使用扩展的实数表示( NaN
,Inf
,-Inf
)作为substring()
函数like the examples given by the spec