html - XPath:获取父母列表,但不获取他们的任何孩子
问题描述
我正在遍历一个大型 HTML 文档,需要获取所有元素的 HTML,其中class
包含country
. 但是,我需要避免在列表中包含这些元素的所有子元素,它们可能具有类似country-name
or的类country-flag-image
。
例如,它可能看起来像以下形式的元素列表:
<div class="country"><div class="country-body">Text</div></div>
而且我需要获取外部 div 元素,但不需要获取内部 div 元素,因此此代码将不起作用://*[contains(@class, "country")]
.
我需要使用contain
,因为如果父元素类名称有一点变化或更改(例如,外部 div 可能更改为country-header
),代码需要足够灵活才能工作。
有没有办法做到这一点?
解决方案
尝试这个:
import lxml.html as LH
xml="""
<div class="country"><div class="country-body">Text_1</div></div>
"""
doc = LH.fromstring(xml)
for elem in doc.iter():
elem.text = ''
LH.tostring(doc)
输出:
'<div class="country"><div class="country-body"></div></div>\n'
推荐阅读
- c# - .NET 5 HttpClient 无法获取 html 内容页面 - http 500
- google-sheets - Google Studio Count Distinct 返回错误值
- javascript - 为什么我的按钮单击侦听器在 chrome 扩展中不起作用?
- java - 我有华为站点工具包错误代码:10017
- python-3.x - Selenium WebdDriverException 使用 Tor
- here-api - 如何通过此处地图路线中的路线详细信息获取?
- sql - 将 2 个 GIN 索引与 gin_trgm_ops 合二为一 | Postgres
- assembly - MASM中的toUpper过程?
- node.js - RoR 应用程序:“资产‘application.css’不存在于资产管道中”
- unit-testing - 开发人员必须在一个 API 中编写所有测试用例吗?