【问题标题】:Getting span tag contents?获取跨度标签内容?
【发布时间】:2012-08-15 05:53:53
【问题描述】:

好的,我想从<span> 标签中获取情节摘要,但它似乎不适用于所有网页。

这就是我所拥有的:

private ArrayList getSynopsis()
{
    for (int i = 0; i < animeURLList.Count; i++)
    {

            var mainURL = "http://www.animenewsnetwork.com";
            var theHTML = wc.DownloadString(mainURL + (string) animeURLList[i]);
            MessageBox.Show(theHTML);
            //inner html for the span info
            HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
            doc.LoadHtml(theHTML);
            //var array = doc.DocumentNode.SelectNodes("//div[@id='infotype-12'][@class='encyc-info-type br']);
            //MessageBox.Show("got here" + array.ToString());
            ArrayList synopList = new ArrayList();;

            foreach (HtmlNode node doc.DocumentNode.SelectNodes("//div[@id='infotype-12'][@class='encyc-info-type br']"))
            {
                    synopList.Add(node.GetAttributeValue("span", "null"));
            }

    }
    return null;
}

我正在尝试从以下位置获取文本:

<div id="infotype-12" class="encyc-info-type br">
<strong>Plot Summary:</strong> 
<span>Tooru takes a test so she can enter the same high school as Run, the girl she     likes. She passes, but when she goes to tell Run, she finds her hugging a girl she's never     seen before.</span>
</div>

span 标签中有情节摘要,这是我想要获取的内容。

我还是无法理解。

【问题讨论】:

  • 感谢您的标记。拥有您的 HAP 代码也很棒。

标签: c# tags html-agility-pack html


【解决方案1】:

在您的循环中尝试以下操作:

synopList.Add(node.SelectSingleNode("span").InnerText);

另外,您正在使用的 XPath:

"//div[@id='infotype-12'][@class='encyc-info-type br']"

最好是:

"//div[@id='infotype-12' and @class='encyc-info-type br']"

【讨论】:

  • 所以出现了第一条消息,但随后它只给了我:“对象引用未设置为对象的实例。”
  • @RyanGlen - 好吧,函数中的最后一条语句是 return null;... 应该是 return synopList;
  • 我改变了它,我得到了这个:i.imgur.com/nv7ra.png,这是没有意义的,因为第一个概要出现了,然后错误发生了。
  • @RyanGlen - 我现在明白了。将SelectNodes 的结果放入一个变量并对其进行迭代。您的代码现在的编写方式是一次又一次地尝试重新获取节点列表。
  • @RyanGlen - 是的。您是否在foreach 上设置了断点并检查nodez 的值是多少。可能没有节点被选中。
猜你喜欢
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多