首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jsoup中属性值的字符集

问Jsoup中属性值的字符集
EN

Stack Overflow用户
提问于 2016-11-18 00:20:10
回答 1查看 335关注 0票数 0

我使用Jsoup,并且我需要以ascii编码获取html文档中所有标记的属性值,保持它们的原样,而不转换它们。

因此,我有以下html文档

代码语言:javascript
复制
<!DOCTYPE html>
<head>
    <meta charset="ascii">        
</head>
<body>
    <div title="2 &gt; 1, 1 > 0, &agrave; vs &egrave;">
        3 &gt; 2,  1 > 0
    </div>
</body>

我想通过Jsoup来解析它。

我需要准确地提取title属性的值:2 &gt; 1, 1 > 0, &agrave; vs &egrave;。

我创建了一个Document对象doc,如下所示(它是用Kotlin编写的,但我认为它在这里并不重要):

代码语言:javascript
复制
val charset = Charset.forName("ascii")
val doc = Jsoup.parse(File("test.html").readText(charset))
doc.outputSettings().charset(charset)

当我通过以下方式打印文档时

代码语言:javascript
复制
println(doc.toString())

我得到了以下字符串

代码语言:javascript
复制
<!doctype html>
<html>
 <head> 
  <meta charset="ascii"> 
 </head> 
 <body> 
  <div title="2 > 1, 1 > 0, &agrave; vs &egrave;">
    3 &gt; 2 
  </div> 
 </body>
</html>

它与文件内容的不同之处在于title属性值(&gt;在字符串"2 > 1"中转换为> ),而文档的其余部分是OK的。

然后,检查属性值

代码语言:javascript
复制
 doc.body().select("div").forEach { div -> println("title = ${div.attr("title")}") }

生成以下字符串

代码语言:javascript
复制
title = 2 > 1, 1 > 0, à vs è

注意,&agrave;和&egrave;被转换为à和è。

我的问题是:在Jsoup中,如何获得html标记的属性值,而不改变它们在输入文件中的编写方式?

在上面的示例中,我需要获取字符串"2 &gt; 1, 1 > 0, &agrave; vs &egrave;" (因为它写在输入文件中),而不是"2 > 1, 1 > 0, &agrave; vs &egrave;" niether "2 &gt; 1, 1 &gt; 0, à vs è"。

EN

回答 1

Stack Overflow用户

发布于 2016-11-18 02:33:35

attr()方法返回一个没有HTML实体的字符串,而我找不到保留HTML实体的方法。但是,您可以使用Jsoup.clean()方法将字符串中的字符转换为实体。

代码语言:javascript
复制
val charset = Charset.forName("ascii")
val doc = Jsoup.parse(File("test.html").readText(charset))
doc.body().select("div").forEach { div ->
    val title = Jsoup.clean("${div.attr("title")}", "", Whitelist.none(), Document.OutputSettings().charset(charset))
    println("title = $title")
}

结果是:

代码语言:javascript
复制
title = 2 &gt; 1, &agrave; vs &egrave;

当然,对于您的用例来说,这可能不是一个好的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40659946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档