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