日期:2014-05-16  浏览次数:20627 次

如何获取HtmlElement的内容?
C#中,如何获取HtmlElement的文本内容(不包括子节点的文本内空)?
比如,有以下html:
<html>
<head>
</head>
<body>

<table>
<tr>
<td>
这是我要获得的文本
<font color="red">这不是我要获得的文本</font>
</td>
</tr>
</table>

</body>
</html>

经试,是不能通HtmlElement的Inntext属性获取的。


------解决方案--------------------
你的意思是取得HtmlElement直接文本节点下的文字,而不是所有的后代文本节点的文字吧,用以下方法

JScript code

function getText(n) {

    var strings = [];
    getStrings(n, strings);
    return strings.join("");

    
    function getStrings(n, strings) {
        if (n.nodeType == 3 /* Node.TEXT_NODE */) 
            strings.push(n.data);
        else if (n.nodeType == 1 /* Node.ELEMENT_NODE */) {
           
            for(var m = n.firstChild; m != null; m = m.nextSibling) {
               if (m.nodeType == 3 /* Node.TEXT_NODE */) 
                      strings.push(m.data);
            }
        }
    }
}