htmlagilitypack 后代不会返回所有后代节点

问题描述 投票:0回答:1

当我在 li 节点上执行时,我只得到 7 个节点,直到元素为止。我尝试过后代,但他们都没有返回文本后面的 div。有没有办法做到这一点?这是html的结构。我还可以使用其他方法吗?我使用竖线而不是尖括号,这样我就可以发布此内容。

|li|
|div display="flex" class="css-wjome"|
    |span|
        |svg|
            |use||/use|
        |/svg|
    |/span|
    |div|
        |span|stuff|/span|
    |/div|
|/div|
|div|
    |span|
        |div|
            |blockquote|stuff|/blockquote|
        |/div|
    |/span|
|/div|
|/li|
html-agility-pack descendant
1个回答
0
投票

不幸的是,一旦找到“div”,HAP 就会关闭“span”。

因此,您当前的 HTML 读起来与此类似:

<li>
<div display="flex" class="css-wjome">
    <span>
        <svg>
            <use></use>
        </svg>
    </span>
    <div>
        <span>stuff</span>
    </div>
</div>
<div>
    <span></span>
    <div>
         <blockquote>stuff</blockquote>
     </div>
</div>
</li>

您可以使用

OutputHtml
轻松查看此行为,如本小提琴所示:https://dotnetfiddle.net/189Ea1

这解释了为什么你没有得到

stuff
文本,因为你可能认为它位于不适合 HAP 的 span 标签内。

© www.soinside.com 2019 - 2024. All rights reserved.