当前位置: 首页 > 面试题库 >

解析器JSoup将标签更改为小写字母

舒博雅
2023-03-14
问题内容

我做了一些研究,似乎标准的Jsoup做出了更改。我想知道是否有一种配置方式,或者是否可以将其他解析器转换为Jsoup文档,或者通过某种方式解决此问题?


问题答案:

不幸的是,Tag类的构造函数没有将名称更改为小写:

private Tag(String tagName) {
    this.tagName = tagName.toLowerCase();
}

但是有两种方法可以改变这种行为:

  1. 如果您想要一个 干净的 解决方案,则可以克隆/下载JSoup Git并更改此行。
  2. 如果您想使用 肮脏的 解决方案,则可以使用反射。

#2的示例:

Field tagName = Tag.class.getDeclaredField("tagName"); // Get the field which contains the tagname
tagName.setAccessible(true); // Set accessible to allow changes

for( Element element : doc.select("*") ) // Iterate over all tags
{
    Tag tag = element.tag(); // Get the tag of the element
    String value = tagName.get(tag).toString(); // Get the value (= name) of the tag

    if( !value.startsWith("#") ) // You can ignore all tags starting with a '#'
    {
        tagName.set(tag, value.toUpperCase()); // Set the tagname to the uppercase
    }
}

tagName.setAccessible(false); // Revert to false


 类似资料:
  • 问题内容: 我有一个JSON字符串,并且键具有大写和小写字符: 我想将其转换为对象,并将所有键都转换为小写。因此在内部,它应该如下所示: 以前,我曾经使用过转换,但是我找不到如何使键变为小写。 有任何想法吗? 我之所以需要这样做是为了使我的验证不区分大小写。 问题答案: 用最少的代码来解决这个问题的一种可能方式是继承并重写属性返回一个小写的字符串,只要当前是: 之所以可行,是因为底层在内部状态变化

  • 问题内容: 在大多数情况下,使用jsoup解析XML都没有问题。但是,如果有XML文档中的标签,jsoup将改变到。这样就无法使用CSS选择器提取标签内的文本。 那么如何防止jsoup“清除” 标签呢? 问题答案: 在jsoup 1.6.2中, 我添加了XML解析器模式,该模式可以按原样解析输入,而无需应用HTML5解析规则(元素内容,文档结构等)。此模式将文本保留在标签中,并允许其倍数等。 这是

  • <?php $result=sp_param_lable('id:2;cat:home'); print_r($result); ?>

  • 问题内容: 我在使用键绑定来更改标签或任何参数的值时遇到麻烦。这是我的代码: 运行此命令时,我单击输入框并按Enter,希望标签将值更改为“更改值”。但是,尽管它确实打印了该文本,但标签保持不变。 通过查看关于类似问题的其他问题,我发现了如何在课堂外使用其中的一些功能,但是在课堂上进行操作时遇到了一些困难。 另外,顺便提一下,“主人”在tkinter中扮演什么角色? 问题答案: 上面的句子使lab

  • 我的目标是增加“收入 ($) " 和“年份”的大小。但是我不知道怎么做。我可以增加“苹果、榴莲、橘子”和“2012、2013”。 下面是我的代码。

  • 主要内容:Jsoup 解析字符串 语法,Jsoup 解析字符串 说明,Jsoup 解析字符串 示例以下示例将展示将 HTML 字符串解析为 Document 对象。 Jsoup 解析字符串 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 Jsoup 解析字符串 说明 parse(String html) 方法将输入的 HTML 解析为一个新的 Document。该文档对象可用于遍历和获取 htm