当前位置: 首页 > 知识库问答 >
问题:

使用JSOUP解析HTMl-需要特定的模式

颜思淼
2023-03-14

我试图在标签之间获得文本并保存到一些变量中,例如:在这里我想保存值返回,这是em标签之间。我还需要其余的文本,这是在p标签,em标签值分配与返回p标签值应该只返回-

我写了下面的内容:下面返回的只是“'em”标记中的“return”。这里的ep基本上是doc.select(p),选择p标记,然后进行迭代,不确定我的方法是否正确,任何其他方法都受到高度赞赏。

String text ="\<p><em>return </em>an item, cancel an order, print a receipt, track your purchases or reorder items.</p>"

Elements italic_tags = ep.select("em");
for(Element em:italic_tags) { 
 if(em.tagName().equals("em")) {
    System.out.println( em.select("em").text());
   }
}

共有1个答案

秦俊发
2023-03-14

如果您需要选择每个子文本和由不同标签包围的文本,您需要尝试选择Node而不是Element。我修改了您的超文本标记语言以包含更多的标记,因此示例更加完整:

        String text = "<p><em>return </em>an item, <em>cancel</em> an order, <em>print</em> a receipt, <em>track</em> your purchases or reorder items.</p>";
        Document doc = Jsoup.parse(text);

        Element ep = doc.selectFirst("p");
        List<Node> childNodes = ep.childNodes();
        for (Node node : childNodes) {
            if (node instanceof TextNode) {
                // if it's a text, just display it
                System.out.println(node);
            } else {
                // if it's another element, then display its first
                // child which in this case is a text
                System.out.println(node.childNode(0));
            }
        }

输出:

return 
an item, 
cancel
 an order, 
print
 a receipt, 
track
 your purchases or reorder items.
 类似资料:
  • 我需要一些帮助用JSOUP解析这个html。我正在尝试从表中的每一列获取数据值。我一直在看JSoup文档,试图弄清楚我到底需要做什么,但还是不确定。看起来网站使用了CSS和内联格式的组合;其中大部分可以转换为CSS并减小页面大小。 这是html文件的一个小片段(实际上差不多有5 MB大小)。 更新:我已经更新了源代码,以更准确地显示html的结构。我假定tbody将位于表元素中是一个给定的条件。我

  • 代码(存储在Element对象中,由jsoup提供): 我想知道正确的方法是否是同时使用time和strong-element来解析它,因为strong-element似乎总是开始一个新行。 谢谢你!

  • 我想解析出这个Nasa页面上的描述,页面底部的文字 我该怎么做?

  • 主要内容:Jsoup 使用DOM解析HTML 语法,Jsoup 使用DOM解析HTML 说明,Jsoup 使用DOM解析HTML 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后如何使用类似 DOM 的方法。 Jsoup 使用DOM解析HTML 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 sampleDiv : 元素对象表示由 id“sampleDiv”标识的 html

  • 问题内容: 这是我的HTML来源 这是我获取内容的Java程序,它过滤HTML标记 是否有使用Jsoup而不是使用Java而不是Regex解析HTML内容的简便方法 有没有办法只获取所需的内容。所以在这里我只需要内容“项目2-222” 问题答案: 尝试使用jsoup轻松解析: 要了解更多信息,请访问Jsoup Docs

  • 问题内容: 我无法使用Jsoup库从此处获取div 。 这是我的代码: 问题答案: 此标记中的文本不是初始html的一部分,而是在页面加载后由JavaScript设置的。您可以通过在浏览器中禁用JavaScript进行检查。Jsoup仅获取静态html,不执行JavaScript代码。 当您检查从页面建立的连接时,您会发现该值是通过对此API的请求进行更新的: https://shapeshift