HTML解析器更新

增加了兼容性.
对于非标准的HTML做法,Tag中的<,>符号没有转义做了兼容.
HtmlParser
或者

http://code.google.com/p/delphi-html-parser/

此条目发表在Delphi, 未分类分类目录。将固定链接加入收藏夹。

HTML解析器更新》有 13 条评论

  1. 五毒说:

    感谢武大大~~一直在用这个html解析~

  2. Mark说:

    建议把NOscript 解析的时候加上过滤,比如Noscript里面包含 A 超链接,用css 搜索 A的时候别把他里面包括的列出来!就跟注释掉一样

  3. 匿名说:

    我表示这个网址完全打不开。。。

  4. 田攀说:

    请问怎么下载呢

  5. 匿名说:

    这个请问是哪个版本?d7编译不了,看语法貌似是xe的

  6. Pingback引用通告: max

  7. 管延亮说:

    感谢分享!赞一个。

  8. l说:

    感谢大侠,提个小建议哦,建议ihtmlelement名称改下,避免与mshtml定义中的名称重复,这样的话,如果有使用webbrowser不用再加mshtml.前缀了。

  9. 咨询说:

    {$IF NOT Declared(TStringDynArray)}
    {$IFDEF USE_GENERICS}
    TStringDynArray = TArray;
    {$ELSE}
    TStringDynArray = array of string;
    {$ENDIF}
    {$ENDIF}

    最后一句报错 [DCC Error] HtmlParser.pas(130): E2029 $IFEND expected but $ENDIF found

    这是什么情况? xe2,谢谢

  10. Jimho说:

    可以增加一些常用的方法吗,比如
    getParentNode,
    getFirstNode,
    getPrevNode,
    getNextNode,
    。。
    这些节点类的操作,现在只有getChildren , 不太方便。

    谢谢

  11. 渔夫说:

    //获取HTML自定义的元素,参数:html,ChildrenList下标列表任定义,例:1,3,7,0,0,1
    function GetInnerText(Nodes: IHtmlElement; ChildrenList: string): string;
    var strList: TStringList;
    i, col: Integer;
    e: IHtmlElement;
    begin
    Result := ”;

    strList := TStringList.Create;
    strList.Delimiter := ‘,'; //自定义条件字段
    strList.DelimitedText := ChildrenList;
    try
    Pointer(e) := Nodes;
    for i := 0 to strList.Count – 1 do begin
    col := StrToInt(strList[i]);
    Pointer(e) := e.Children[col];
    if Pointer(e) = nil then
    Exit;
    end;

    Result := e.InnerText; //获取HTML自定义的元素
    finally
    strList.Free;
    Pointer(e) := nil;
    end;
    end;

    procedure TForm4.btnTestClick(Sender: TObject);
    begin
    FNodes := parserHtml(Memo1.Text);

    Memo2.Lines.Clear;
    Memo2.Lines.Add(edtList.Text);
    Memo2.Lines.Add(GetInnerText(FNodes, edtList.Text)); //获取HTML自定义的元素
    end;

匿名进行回复 取消回复

电子邮件地址不会被公开。

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

你必须启用JavaScript