gpt4 book ai didi

Delphi html解析检查元素是否具有属性

转载 作者:行者123 更新时间:2023-12-02 13:57:35 26 4
gpt4 key购买 nike

我有以下程序:

class procedure ParseData(AData: string; var ATextList: TList<string>);
var
HTMLDoc: OleVariant;
HTMLElement: OleVariant;
I: Integer;
begin
HTMLDoc := coHTMLDocument.Create as IHTMLDocument2;
HTMLDoc.Write(AData);
HTMLDoc.Close;

for I := 0 to HTMLDoc.body.all.length - 1 do
begin
HTMLElement := HTMLDoc.body.all.item(I);

if HTMLElement.hasAttribute('attr1') then
ATextList.Add(HTMLElement.innerHTML);
end;
end;

问题是 hasAttribute 不起作用。 setattributeinnerHTMLtagName 等功能和过程运行良好。是否有另一种方法来检查元素是否包含给定属性?

最佳答案

您可以测试:

if not VarIsNull(HTMLElement.getAttribute('attr1')) then
ATextList.Add(HTMLElement.innerHTML);

编辑:

hasAttributeIHTMLElement5 中实现接口(interface) - 它需要 IE8 及更高版本,并且在 IE7 标准模式或 IE5(Quirks)模式下不受支持。

我导入了C:\Windows\System32\mshtml.tlb(使用tlibimp工具),并且此代码有效:

if (IDispatch(HTMLElement) as IHTMLElement5).hasAttribute('attr1') then...

关于Delphi html解析检查元素是否具有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34072730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com