【发布时间】:2016-07-15 11:30:26
【问题描述】:
我的 HTML 树中有类似下面的内容。我想通过迭代div来创建一个JSON,记住哪个data-view实际上是哪个父data-view的子级。最终结果类似于{"main":{"header":{"navbar":"some txt","static":"some text"},"slider":"some txt","footer":"some txt"}}
<div id="loader-div"></div>
<div class="main-container">
<div data-view="main" data-class="main_class">
<div class="details_container">
<h1>Helo Text</h1>
<div data-view="header" data-class="header_class">
<h2>Hello Header</h2>
<div data-view="navbar" data-class="navbar_class">
<h2>sdf</h2>
<span data-text="navbarDataId">some text</span>
</div>
<div class="brder_bttm clearfix">
<div data-view="static" data-class="static_class">
<span data-text="navbarDataId">some text</span>
<button data-event="show_all" class="btn btn-block btn-success">Show All</button>
</div>
</div>
<span>some text</span>
</div>
<div class="slider_container">
<div data-view="slider" data-class="slider_class">
<span data-text="sliderDataId">some text</span>
</div>
</div>
<div data-view="footer" data-class="footer_class">
<span data-text="footerDataId">some text</span>
</div>
</div>
</div>
</div>
我试过了
for (int z = 0; z < doc.getElementsByAttributeStarting("data-view").size(); z++ ){
String dtview= doc.getElementsByAttributeStarting("data-view").get(z).attr("mt-class")
}
但这给了我所有子元素并且无法找到哪些子元素属于哪个父元素?如果可以通过其他一些库实现相同的功能,我很乐意打开它。 更新:更新了我的 html 以获取确切的场景。请注意,
- 我必须关注并迭代数据视图节点,只记住哪个节点实际上是哪个父节点的子节点。
- 数据文本节点总是包含在某个数据视图节点中。
- 请注意它包含数据文本节点的数据视图节点模式。
【问题讨论】:
-
在您更新的示例中,预期输出是否相同?
-
@DavidePastore 我也更新了预期的 json 输出。虽然几乎一样。
-
@DavidePastore 你找到出路了吗?
-
还没有,我正在处理这个。
-
好的..我也在做同样的事情..
标签: java html-parsing jsoup jsonpath