0

我想匹配标签层次结构中的标签

<table class='tabletext'>
    <tr align='center' style='background:#FFFFFF'>
        <td><span id='fd'><span>10</span></span></td>
        <td>10.00</td>
        <td>&pound;0.00</td>
        <td>&pound;280.00</td>
        <td>
            <ul>
                <li><a href=''>ok</a></li>+
            </ul>
            <a href='/cart.php?action=add&qty=10&id=2628' title='Click here to add this item to your cart'>
                <img alt='Click here to add this item to your cart' src='/images/addtocart.gif' border='0' />
            </a>
        </td>
    </tr>
    <tr><td><span>Hello2</span></td></tr>+
</table>

这是我的代码

Document doc = Jsoup.parseBodyFragment(html);

        Elements element = doc.select(".tabletext > * > * > * > span");

        System.out.println(element.html());

输出是

<span>10<span>
hello2

但我不知道 .tabletext 和 span 之间有多少标签,所以在这种情况下应该是什么

Elements element = doc.select(".tabletext > span");

用于获取上述输出的代码。如何为该输出安排 * > 感谢高级。

4

3 回答 3

1

我想告诉你,Jsoup在从 XML/HTML 文件中获取一些信息时,我曾经使用过并且遇到了很多麻烦,所以我决定使用XPath. 它更容易使用,你可以用它做很多东西。

我的建议是试一试:

使用 XPath 解析 XML 文档

于 2012-09-13T07:28:26.703 回答
0

你是10后吗?

你有一个 id='fd' 的父跨度,所以这行得通吗?

Elements element = doc.select("#fd > span");

于 2012-09-13T06:39:12.283 回答
0

这是您的解决方案

Elements element = doc.select(".tabletext span");

att att 表示它们之间的多个标签和文本。

于 2012-09-14T12:24:36.387 回答