使用带分隔符的JSoup在子子节点和子子节点中提取数据

时间:2017-01-20 12:41:45

标签: java html parsing jsoup

我目前正在尝试使用Jsoup库

解析Java中的以下HTML字符串
Activity

我试图在一个字符串中提取整个描述,每个功能都是单独的字符串。我试过了

<div class="external container">
<div class="description">
    <h3>Some Description</h3>
    <p>
Some more description</p>
    <p>
        <strong>Description Subheader</strong>
    </p>
    <p>
Description sub header text</p>
    <p>
        <strong>Features 1:</strong>
    </p>
    <ul>
        <li>a</li>
        <li>b</li>
        <li>c</li>
        <li>d
            <ul>
                <li>d1</li>
                <li>d2</li>
                <li>d3</li>
                <li>d4</li>
            </ul>
        </li>
    </ul>
    <p>
        <strong>Features 2:</strong>
    </p>
    <ul>
        <li>a</li>
        <li>b</li>
        <li>c</li>
    </ul>
</div>

但它会在一个字符串中返回整个内容,这使得难以区分。另外,我试过了,

(String) xpath.evaluate(By.xpath(xpath), doc,XPathConstants.STRING);

但是这也会在一个String中返回整个内容。

我可以编写xpaths / css并提取单个元素。但是,问题是我有多个HTML字符串要解析,每个都有不同的组合/功能集,有些在Document doc = Jsoup.parse(htmlString); Elements mainEle= doc.body().children(); for(Element element : mainEle) { Elements elements = element.select("*"); for (Element element2 : elements) { features=features+element2.ownText(); } } 标记标记中有描述,而没有描述容器。

我只想解析数据,并能够使用JSoup库区分每个String

对于上面的示例,我应该得到3个字符串

描述字符串应该返回 -

  

一些描述|更多描述|说明子标题|   描述子标题文本

Feature1应该返回 -

  

特点1:| a | b | c | d:d1,d2,d3,d4

Feature2应该返回 -

  

特点2:| a | b | ç

0 个答案:

没有答案