Closed yzxh24 closed 1 year ago
可以直接获取html包中的对象, 然后使用它的innerHtml属性
import 'package:html/parser.dart';
import 'package:xpath_selector_html_parser/src/ext.dart';
import 'package:html/dom.dart';
void main() {
final html = """
<html>
<body>
<ul>
<li class='a'><a href="">Item 1</a></li>
<li class='a'><a href="">Item 2</a></li>
<li class='a'><a href="">Item 3</a></li>
</ul>
</body>
</html>
""";
parse(html)
.documentElement!
.queryXPath('//ul/li')
.nodes
.map((e) => (e.node as Element).innerHtml)
.forEach(print);
}
<a href="">Item 1</a>
<a href="">Item 2</a>
<a href="">Item 3</a>
谢谢🙏
通过 XPathNode 的 text 属性获得的内容会将里面的 html 标记都过滤掉,但是某些情况下我们有可能需要保留那些 html 标记,类似下面这种:
通过 //ul/li 获取到的内容 a 标记都自动被清理掉了。