0

我的字符串中有一个 html 数据,我只需要在其中获取段落值。下面是一个示例 html。

<html>
  <head>
    <title>
       <script>
          <div>
               Some contents
           </div>
          <div>
            <p> This is what i want </p>
            <p> Select all data from p </p>
            <p> Upto this is required </p>
          </div>
         <div>
          Other html elements
         </div>

那么如何使用字符串操作从段落中获取数据。

期望的输出

<Div>
  <p> This is what i want    </p>
  <p> Select all data from p </p>
  <p> Upto this is required  </p>
</div>
4

4 回答 4

1

给 div 一个 ID,例如

<div id="test">
<p> This is what i want </p>
<p> Select all data from p </p>
<p> Upto this is required </p>
</div>

然后使用//div[@id='test']/p.

解决方案分解:

//div                    - All div elements
[@id='test']   - With an ID attribute whose value is test
/p    
于 2012-10-05T09:34:21.870 回答
0

如果您使用其他帖子中提到的 Html Agility Pack,则可以使用以下方法获取 html 中的所有段落元素:

HtmlDocument doc = new HtmlDocument();
doc.Load("your html string");
var pNodes = doc.DocumentNode.SelectNodes("//div[@id='id of the div']/p")

由于您使用的是 .net Framework 2.0,因此您需要较旧版本的 Agility Pack,可在此处找到:HTML Agility Pack

如果您只想要段落内的文本,您可以使用

var pNodes = doc.DocumentNode.SelectNodes("//div[@id='id of the div']/p/text()")
于 2012-10-05T09:46:24.990 回答
0

我已经使用Html 敏捷包来完成类似的事情。然后你可以使用 LINQ 来获得你想要的东西。

于 2012-10-05T09:37:12.377 回答
0

Xpath 是显而易见的答案(如果 HTML 不错,有根等),但不能像chilkat这样的第三方小部件

于 2012-10-05T09:38:36.143 回答