使用BeautifulSoup获取XML中指定house_id对应同级appliances标签内容
BeautifulSoup 解析XML获取同父节点字段方案
首先请确保已安装依赖库,未安装可执行以下命令:pip install beautifulsoup4 lxml
核心实现逻辑
- 定位到值匹配的
house_id标签节点 - 查找该节点所属的
place父节点 - 从
place节点下提取appliances标签的文本内容即可
完整代码示例
from bs4 import BeautifulSoup # 这里替换为你的XML内容 xml_content = """ <properties> <place> <house_id>12345</house_id> <appliances>Fridge, Oven</appliances> <price>350000</price> </place> <place> <house_id>6789</house_id> <appliances>Heater, Microwave, Fridge</appliances> <price>870000</price> </place> </properties> """ # 初始化soup,指定XML解析器 soup = BeautifulSoup(xml_content, 'xml') # 定义目标house_id target_house_id = "12345" # 查找匹配的house_id节点 matched_id_node = soup.find('house_id', string=target_house_id) if matched_id_node: # 查找所属place父节点,再提取appliances文本 appliances_text = matched_id_node.find_parent('place').find('appliances').get_text(strip=True) print(appliances_text) else: print(f"未找到house_id为{target_house_id}的对应记录")
运行上述代码,输出结果为:Fridge, Oven,和预期一致。
内容的提问来源于stack exchange,提问作者user3611
相关产品推荐
相关产品推荐

