gpt4 book ai didi

C# Html Agility Pack dd和dt标签解析问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:35:50 24 4
gpt4 key购买 nike

我正在尝试解析该字段,但无法正常工作。当前尝试:

HTML:

<div class="movie_data">
<dl>
<dt><a href="http://www.imdb.com/title/tt1302011/">IMDB</a>:</dt>
<dd>8.0 / 10</dd>
<dt>Zvrst:</dt>
<dd><a href="/sl/kino?t=&amp;g=1&amp;actual=1">komedija</a>, <a href="/sl/kino?t=&amp;g=14&amp;actual=1">animirani</a>, <a href="/sl/kino?t=&amp;g=21&amp;actual=1">družinski</a></dd>
<dt>Trajanje:</dt>
<dd>90 min</dd>
</dl>
</div>

我的代码:

HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument htmlDocTusCelje = web.Load(my_link_to);
HtmlAgilityPack.HtmlNode nodeOcena = htmlDocTusCelje.DocumentNode.SelectSingleNode("//div[@class='movie_data']/dt/dd[0]");
labelOcena.Text = nodeOcena.InnerText;

我只需要解析 <dd> 中的内部文本标签,但我得到一个异常(exception):NullReferenceException, Object reference not set to an instance of an object .

我试过 SelectNodes和一个 foreach 循环——同样的故事。请帮我解决这个错误。

最佳答案

你的 xpath 有两个问题:

  1. 索引应该从 1 开始,而不是从 0 开始。
  2. 你写的是 dt 而不是 dl

如果 xpath 查询找不到这样的节点,它会返回 null,这会导致您在尝试使用 nodeOcena 时出错。

这似乎可行:

HtmlNode node = doc.DocumentNode.SelectSingleNode("//div[@class='movie_data']/dl/dd[1]");

关于C# Html Agility Pack dd和dt标签解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com