Skip to content

NAVIGATING TREE - parent, children, siblings

Python
#!/usr/bin/env python3
"""NAVIGATING TREE - parent, children, siblings"""
from bs4 import BeautifulSoup
html = """
<html><body>
<div id="container">
    <p>First child</p>
    <p id="middle">Middle child</p>
    <p>Last child</p>
</div>
</body></html>
"""
soup = BeautifulSoup(html, 'html.parser')
middle = soup.find(id='middle')
print("Tree Navigation:")
print(f"  Parent: {middle.parent.name}")
print(f"  Previous sibling: {middle.previous_sibling.previous_sibling.string}")
print(f"  Next sibling: {middle.next_sibling.next_sibling.string}")
container = soup.find(id='container')
print(f"  Children count: {len(list(container.children))}")
for i, child in enumerate(container.children):
    if child.name:
        print(f"    Child {i}: {child.string}")