首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提取标记内的数据

提取标记内的数据
EN

Stack Overflow用户
提问于 2015-09-03 18:02:44
回答 1查看 573关注 0票数 0

我读了一些关于这个主题的帖子,我试图实现答案,但我没有我想要的输出。

这是代码HTML

代码语言:javascript
复制
<div class="span-8">
  <dl>
    <dt>
      <a title="A Coruña" href="http://www.paginasamarillas.es/all_a-coru%C3%B1a_.html"> A Coruña</a>
    </dt>
    <dt>
      <a title="Álava" href="http://www.paginasamarillas.es/all_alava_.html"> Álava</a>
    </dt>
    <dt>
      <a title="Albacete" href="http://www.paginasamarillas.es/all_albacete_.html"> Albacete</a>
    </dt>
    <dt>
      <a title="Alicante" href="http://www.paginasamarillas.es/all_alicante_.html"> Alicante</a>
      </dt>
...
...

我想得到“巴塞罗那”,"Alicante","Albacete“等。所以,我尝试以下代码:

代码语言:javascript
复制
var nodos = doc.DocumentNode.SelectNodes("//div[@class='container']");

代码语言:javascript
复制
var nodos = doc.DocumentNode.SelectNodes("//a[@title]");

代码语言:javascript
复制
var nodos = doc.DocumentNode.SelectNodes("//div[@class='span-8']");

但是不起作用,就好像页面中不存在类"container“、属性"title”或类"span-8“。也可以尝试其他变体。在代码中存在其他"div“和类”container“,以及其他"a”和属性“title”,提取得很好,但这不是我想要的。

编辑

索里,我解释错了。不是一个单词,而是一组数据。我修改了上面的HTML代码。

EN

回答 1

Stack Overflow用户

发布于 2015-09-03 18:12:46

我测试了你的示例html,它工作正常:

代码语言:javascript
复制
string html = @"<div class=""container"">
  <div class=""span-24"">
    <div class=""span-8"">
      <dl>
        <dt>
          <a title=""A Coruña"" href=""http://www.example.com/all_example.html""> Barcelona</a>
        </dt>
      </dl>
    </div>
  </div>
</div>";

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
var div = doc.DocumentNode.SelectSingleNode("//div[@class='span-8']");
if(div != null)
{
    List<string> linkTexts = div.Descendants("a")
            .Select(a => a.InnerText)
            .ToList();  // one item " Barcelona"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32372606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档