2010-04-14 79 views
1

我需要为现有的HTML文档添加“注释” - 最好以字符串属性值的形式,我可以按名称读取&。HTML文件:通过IHTMLDocument添加注释

显然(我),在报头中的元元件似乎是常见的方式 - 即添加/修改的元素,如

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

问题1: IST认为“可接受的”/OK,或者是有更好的方法来添加元数据?

我在通过网页浏览器控件中的document获取/ mut(il)HTML内容方面有一点经验。对于这个任务,我已经加载HTML文档成HTMLDocument对象,但我不知道怎么去:

// what I have: 

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

// ... what now? 

问题2:我应该用别的比HTMLDocument?如何获得head元素? 如何获得具有给定名称的元素的值? 如何设置元素的值(添加项目当且仅当它不存在)?

doc->all返回所有的标签,我可以列举即使计数返回0。我可以扫描,对于head的集合,然后扫描,对所有meta其中名称具有一定的串等开始 - 但这种感觉非常笨拙。

回答

2

我没有足够的使用C++使用HTML的经验。 我不知道这是否回答你的问题,但你可以做到以下几点

  1. 枚举使用doc-所有
  2. 每个IHtmlElement所有元素>您可以将标记名比较元(使用IHtmlElement :: get_tagName )
  3. 这些元标签可以获取和使用IHtmlElement ::的getAttribute和setAttribute方法)

或者

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