gpt4 book ai didi

c++ - HTML 文件 : add annotations through IHTMLDocument

转载 作者:行者123 更新时间:2023-11-30 04:39:03 25 4
gpt4 key购买 nike

我需要向现有的 HTML 文档添加“注释”- 最好是我可以通过名称读写的字符串属性值的形式。

显然(对我而言), header 中的元元素似乎是常见的方式 - 即添加/修改元素,如

<head>
<meta name="unique-id_property-name" content="property-value"/>
...
</head>

问题 1:“可以接受”/ok,还是有更好的方法来添加元数据?

我之前有一点通过 Web 浏览器控件中的 document 获取/修改 HTML 内容的经验。对于此任务,我已经将 HTML 文档加载到 HTMLDocument 对象中,但我不确定如何继续:

// what I have:

IHTMLDocument2Ptr doc;
doc.CreateInstance(__uuidof(HTMLDocument));
IPersistFile pf = doc;
pf->Load(fileName, STGM_READ);

// ... what now?

问题 2:我应该使用 HTMLDocument 以外的任何东西吗?

问题 3..N:如何获取 head 元素?如何获取具有给定名称的元元素的值?如何设置元元素的值(当且仅当项目不存在时才添加)?

doc->all 返回所有标签的集合,即使 count 返回 0 我也可以枚举它。我可以扫描 head,然后扫描所有标签meta 名称以特定字符串开头的位置,等等 - 但这感觉很笨拙。

最佳答案

我没有足够的经验使用 C++ 处理 HTML。我不确定这是否能回答您的问题,但您可以执行以下操作

  1. 使用 doc->all 枚举所有元素
  2. 对于每个 IHtmlElement,您可以将标记名与 meta 进行比较(使用 IHtmlElement::get_tagName)
  3. 对于这些元标记,您可以使用 IHtmlElement::getAttribute 和 setAttribute 方法获取和设置属性)

或者

  1. 编写一个接受属性名称和值的 Javascript 函数。这应该能够更新您拥有的元标记
  2. 然后您可以使用 IHtmlDocument2::get_script 作为 IDispatch 获取脚本对象
  3. 使用此脚本调度调用您的 javascript 函数。

关于c++ - HTML 文件 : add annotations through IHTMLDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2636479/

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