【发布时间】:2021-02-01 02:33:19
【问题描述】:
我无法解析和过滤所需的 HTML 数据。我通过 CSS 选择器接近了数据,但是当我在 ListView 中打印过滤后的数据时,它在 ListView 中只显示“”。我使用 Dio 来获取 HTML 源代码,并使用 html API(不是 dart:html)来解析和过滤数据。如何使用 Flutter 解析 HTML 属性中的“标题”数据并将其显示在列表视图中?我真的很感谢你的帮助。谢谢。
这是我解析数据的Flutter代码,带有cmets的代码是我已经尝试过的代码。
setState(() {
document = parse(response.data);
//elements = document.getElementsByClassName('samu');
//elements = document.getElementsByTagName('a');
elements = document.querySelectorAll("td.subject > a.samu");
//elements = elements.toString();
});
}
这是我创建 Listview 的代码
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('크롤링 리스트'),
),
body:
//Text(_text));
ListView.builder(
itemCount: elements.length,
itemBuilder: (context, index) {
return ListTile(
title: Text('${elements[index]}'),
);
},
));
}
这是我要解析的 HTML 代码。我想过滤(或获取)“标题”部分的数据。在我使用的 HTML 源代码中,有很多数据无用数据使用“标题”,但我需要的所有数据都关联在“samu”类中。
<td class="subject"> <a href="javascript:void(0);" class="samu" onclick="fnView('BBSMSTR_000000012758', '19151090'); " title="title 1">
title 1</a>
【问题讨论】:
-
这个html代码是从elements[index]获取的,是字符串形式的吗?
-
我是通过DIO获取的,如果需要的话可以转成字符串的形式。
标签: flutter dart html-parsing