0
我想通過每個html節點並獲取其屬性和innerText。當我掃描任何html時,即使它不存在,我也會得到這個愚蠢的#text節點。C#什麼是htmlnode中的#text節點?
這裏是我的html
<div class="demographic-info adr editable-item" id="demographics">
<div id="location-container" data-li-template="location">
<div id="location" class="editable-item">
<dl>
<dt>Location</dt>
<dd>
<span class="locality">Bolton, United Kingdom</span>
</dd>
<dt>Industry</dt>
<dd class="industry">Computer Games</dd>
</dl>
</div>
</div>
</div>
這裏是我的C#
foreach (HtmlNode node in j.ChildNodes)
if (node.HasChildNodes)
checkNode(node);
static void checkNode(HtmlNode node)
{
foreach (HtmlNode n in node.ChildNodes)
{
if (n.HasChildNodes)
checkNode(n);
else
{
HtmlNode nodeValue = hasValueInNode(n);
if (nodeValue != null)
addCategories(nodeValue);
}
}
}
當我經過調試模式來檢查哪個節點編譯器是在和我得到這個:
1 = div,2 = #text,3 = div,4 = #text,5 = div,6 = #text,7 = dl ... 等等!
我猜測是檢測空白區或返回空間作爲節點,但這是浪費循環。有人可以向我解釋這個和避免它的方法。謝謝
空白在其他一些要素中也很重要,例如, 'pre'或XML格式,無論有'xml:space ='preserve''。 – Joey
@Joey非常好的點 –
好的,謝謝你們 – Photonic