如何从 dart 中的属性名称获取属性值(dart 中的 html 属性中的 _EVENTVALIDATION)?
Posted
技术标签:
【中文标题】如何从 dart 中的属性名称获取属性值(dart 中的 html 属性中的 _EVENTVALIDATION)?【英文标题】:How to get attribute value from attribute name in dart(_EVENTVALIDATION from html attribute in dart)? 【发布时间】:2021-06-09 09:42:36 【问题描述】:我正在尝试从网页中抓取数据。我想获取 value 属性中存在的值(来自下面给出的 html 元素)
<input type="hidden"
name="__EVENTVALIDATION"
id="__EVENTVALIDATION"
value="abcdefghijklmnopq" />
我通过在flutter中对网页的get请求后解析html得到这个值
var document = parse(response.body);
然后
var event_element = document.getElementById('_EVENTVALIDATION');
我现在想要的是字符串形式的值 'abcdefghijklmnopq'。
到目前为止,我已经尝试过使用 html 包(没有用)。
在那之后我使用了 xpath(但这也没有成功),我已经连续 2 天进行头脑风暴。
我们将不胜感激任何形式的帮助 :)
这是我的代码示例
import 'package:html/parser.dart';
import 'package:http/http.dart' as http;
import 'package:html/parser.dart';
import 'package:html/dom.dart';
import 'package:html/dom_parsing.dart';
Future<void> fetchdata() async
Uri url1 = Uri.parse('https://www.jhjkfw.com/login');
http.Response response = await http.get(url1);
var document = parse(response.body)
var valueofevent = document.getElementById('_EVENTVALIDATION').getAttribute('value');
print(valueofevent);
也是我的 pubspec.yaml
dependencies:
flutter:
sdk: flutter
http: ^0.13.0
html: ^0.15.0
我也尝试了以下方法,但它给了我一个错误:
var valueofevent = document.getElementById('_EVENTVALIDATION').getAttribute('value');
错误状态:没有为类型“元素”定义方法“getAttribute”。尝试将名称更正为现有方法的名称,或定义名为“getAttribute”的方法
【问题讨论】:
【参考方案1】:你说你试过了,但没用。但不是您尝试过的什么。这应该工作。如果没有,您将需要更具体地了解究竟是什么不起作用:
var value = event_element.getAttribute('value');
【讨论】:
我试过这个,但它给了我:方法'getAttribute'没有为'Element'类型定义。尝试将名称更正为现有方法的名称,或定义名为“getAttribute”的方法 你能发一个minimal reproducible example吗?应该是:api.flutter.dev/flutter/dart-html/Element/getAttribute.html 我正在做这个'''var valueofevent = document.getElementById('_EVENTVALIDATION').getAttribute('value');'''(请让我知道这是否足够我会如果需要,请提供更多)。 不,这还不够,因为我不知道您使用哪些库来实现这些功能。请提供minimal reproducible example。 我用一个简单的例子编辑了我的问题,还有什么......?【参考方案2】:我使用以下代码制作了另一种方法:
var valueofevent = document.getElementById('_EVENTVALIDATION').attributes['value'];
这非常适合我!
【讨论】:
以上是关于如何从 dart 中的属性名称获取属性值(dart 中的 html 属性中的 _EVENTVALIDATION)?的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 Dart 中的 int 属性对所有 Class 属性进行排序?