为了从网页中提取文本,XPath要精确到1吗?
我有几个XPath,如下所示:为了从网页中提取文本,XPath要精确到1吗?,xpath,Xpath,我有几个XPath,如下所示: //*[@id="904735f0-bb82-11ea-a473-6d0f51688222"]/div/p //*[@id="729c0860-a71d-11ea-b994-53a3e91a35c2"]/div/div/div[1]/div/p //*[@id="2555ab30-bb84-11ea-9e8b-277e7f6208b2"]/div/div/div[1]/div/p //*[@id=&
//*[@id="904735f0-bb82-11ea-a473-6d0f51688222"]/div/p
//*[@id="729c0860-a71d-11ea-b994-53a3e91a35c2"]/div/div/div[1]/div/p
//*[@id="2555ab30-bb84-11ea-9e8b-277e7f6208b2"]/div/div/div[1]/div/p
//*[@id="7e100250-a71d-11ea-b994-53a3e91a35c2"]/div/div/div[1]/div/p
//*[@id="811727d0-a71d-11ea-b994-53a3e91a35c2"]/div/div/div[1]/div/p
由于文本位于不同的视图端口,所以上述所有内容都用于从单个web页面提取文本,但我希望找到一个xpath来提取所有页面的文本。是否可以使用“and”和多个ID通过一个xpath提取所有信息
如果您有任何其他建议,我们将不胜感激。您可以使用
或
操作符处理最后四个问题。和merge nodes操作符
|
来添加第一个节点
因此,要在一个表达式中选择所有5个表达式,请使用以下表达式:
//*[@id="904735f0-bb82-11ea-a473-6d0f51688222"]/div/p | //*[@id="729c0860-a71d-11ea-b994-53a3e91a35c2" or @id="2555ab30-bb84-11ea-9e8b-277e7f6208b2" or @id="7e100250-a71d-11ea-b994-53a3e91a35c2" or @id="811727d0-a71d-11ea-b994-53a3e91a35c2"]/div/div/div[1]/div/p
更短、更通用的解决方案可以是:
(//div/div/div[1]/div/p|//div/p)[parent::*[string-length(@id)=36 and substring(@id,24,1)="-"]]
带有
()
的第一部分用于指定路径的终点。由于@id
属性具有相同的长度,因此我们在谓词中使用它。我们还使用子串
验证了-
在特定位置的存在。非常感谢您的帮助:)