2013-11-21 66 views
0

我有一个HTML结构,我想根据文本找到标签类型,即包含像“课程内容”这样的字符串的标签。我有以下HTML结构:基于文本获取节点类型

<tr> 
    <td colspan="2"> 
     <h3> 
      Course Contents 
     </h3> 
    </td> 
</tr> 

这里是我的代码:

HtmlNode ContentNode = CourseDoc.DocumentNode.Descendants().Where((n => n.InnerText.Trim().ToLower() == "course contents")).FirstOrDefault(); 

所以,我怎么能得到h3标签包含字符串?

另外我想在这个HTML下面找到类似的h3标签。这里有一个例子:

<tr> 
     <td colspan="2"> 
      <h3> 
       Course Contents 
      </h3> 
     </td> 
     <td> 
     abc 
     </td> 
    </tr> 
<tr> 
     <td colspan="2"> 
      <h3> 
       Course Outline 
      </h3> 
     </td> 
    </tr> 

当我发现的第一个H3标签,然后通过代码中找到第二H3标签,并在这些标签之间检索HTML。

+0

你是什么意思“在这些标签之间的HTML”是什么意思?你想要'​​abc'还是别的什么? –

+0

我的意思是,起初我发现了h3标签,现在如果我得到另一个h3标签,那么我想要检索这些(h3)标签之间的html。 如果第二个h3标签没有找到,那么检索第一个h3标签下面的所有html。 – user2199343

回答

0

如果使用InnerHtml,而不是InnerText,你与你的查询选择的节点将是<h3>标签:

HtmlNode ContentNode = CourseDoc.DocumentNode.Descendants().Where((n => n.InnerHtml.Trim().ToLower() == "course contents")).FirstOrDefault(); 
+0

是的,这是做的伎俩:-) 以及我怎么能找到这个标签下面的类似标签? 像这样是h3标签,我想在此标签后面找到类似的h3标签。 – user2199343

+0

你需要用更大的HTML样本来更新你的问题,这样我才能更清楚地看到你的意思。 –

+0

我已更新我的问题 – user2199343