Html Agility Pack空节点

时间:2018-01-03 19:37:23

标签: html-agility-pack

<?xml version="1.0" encoding="UTF-8"?>
<div class="contentLeft">

<h1>Hello</h1>

    <ul id="resultlist" class="stories">
        <li>
          
        </li>
    </ul>

</div>

我有以下XML文件,我想阅读“ li ”条目,如下所示:

var doc = new HtmlDocument();
doc.Load(path);

var query = "//div[contains(@class,'contentLeft')]//ul";
var childNodes = doc.DocumentNode.SelectSingleNode(query).ChildNodes;

现在我应该在列表中有一个条目 - 但我有三个! enter image description here

实际上我只期待“li”条目,你们中的任何人都知道两个“#text”条目的来源吗?

以下是我的问题的dontnetfiddle.net链接:

DotNetfiddle.net

1 个答案:

答案 0 :(得分:0)

有很多方法可以解决它:

  1. 修改您的XPATH
  2. 使用LINQ:nodes.ChildNodes.Where(_ => _.NodeType != HtmlNodeType.Text);nodes.ChildNodes.Where(_ => _.Name.Equals("li"))
  3. 我不记得确切,但其中一个应该有用。