我需要对C++中的HTML做一些简单的修改,最好不用完全重写HTML,比如当我使用libxml2或MSHTML时会发生什么。非破坏性地解析和修改C++中的HTML元素
特别是我需要能够读取,然后(可能)修改所有“img”元素的“src”属性。我需要它足够强大,以便能够使用任何有效的HTML来完成此操作,但最好不要更改此过程中的任何其他HTML。
是否有任何图书馆能够处理这个问题?或者这是我能用正则表达式做的事情吗?我对正则表达式不太了解,我在这里读了很多问题,说你不应该用它们来解析HTML,但我不清楚这是否适用于这样的事情,或者如果这个原则适用主要用于从HTML中构建树的上下文中解析。
我不确定我是否理解你的约束。使用DOM不会完全重写HTML。 – EBGreen 2009-08-09 16:01:28
@EBGreen,libxml添加标记,标记,并重新格式化所有HTML。 MSHTML将所有标签更改为大写,并将其全部重新格式化。由于有效的HTML仍然可以在浏览器中显示,因此将其分解为DOM通常会留下原始HTML中的内容。我想尽可能保留原始的HTML,因为人们可能仍然在我的产品的另一端进行设计,如果他们看到的HTML与他们试图制作的HTML看起来有很大的不同,那可以成为一个问题。 –
Gerald
2009-08-09 16:08:50
对不起,应该说“因为无效的HTML仍然可以显示......” – Gerald 2009-08-09 16:09:23