And*_*rio 3 html tags xpath web-scraping
我需要一个XPath,它可以找到一个<a>标签或一个<option>标签,每个标签都包含“某物”。
因此,XPath可以匹配
<a attributes='value'>something</a>
Run Code Online (Sandbox Code Playgroud)
要么
<option attributes="value">something</option>
Run Code Online (Sandbox Code Playgroud)
我尝试了这个:
$x("//*[local-name()='a' contains(.,'something') or local-name()='option' contains(.,'something')]")
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
$x("//*[local-name(contains(.,'something'))='a' or local-name(contains(.,'something'))='option']")
Run Code Online (Sandbox Code Playgroud)
但是它们都不起作用。在第一个中,我可以排除contains()并找到标签,但是我需要能够搜索仅包含指定的“内容”文本的那些标签。
您确实应该发布您的输入XML。
可以说是这样的:
<r>
<a>xxx something</a>
<a>yyy nothing</a>
<option>something xxx</option>
<option>nothing xxx</option>
</r>
Run Code Online (Sandbox Code Playgroud)
(1)然后(如果要忽略名称空间):
//*[(local-name() = 'a' or local-name() = 'option')][contains(., 'something')]
Run Code Online (Sandbox Code Playgroud)
(2)或(如果没有名称空间)[ 信誉:早期的@alecxe帖子]:
//*[self::option or self::a][contains(., "something")]
Run Code Online (Sandbox Code Playgroud)
(3)或(如果再次使用XPath 2.0,则不使用名称空间):
//(a|option)[contains(., 'something')]
Run Code Online (Sandbox Code Playgroud)
将选择
<a>xxx something</a>
<option>something xxx</option>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |