Unfortunately I didn't find an example that was simple enough on the web, and the work I did is not open source, so here is the best link I found, which was by the way what I used to derive my implementation:
Unfortunately, this is missing the semantic metadata about the fact that it's a tree. It might be fine in some cases, but in general you would want to add some Aria attributes. But i'm not sure whether you could generate the entire thing server-side.
Here's some examples of this lovely element. I can't believe I hadn't heard about this before! I shared it with several web designers/developer friends who all had the same reaction.
https://codepen.io/dsheiko/pen/MvEpXm
This is a bit fancier than necessary and that makes it not so good as an example for learning, but hopefully it will be enough to give you the idea.
edit: this one is a little bit better to understand the basics: https://medium.com/metaphorical-web/javascript-treeview-cont...
In short, summary/detail has the native hability to collapse the details and you can explore that to implement a tree by nesting them.