为了开发自定义反向代理(用 C++ 编写),我想对 HTML 内容中的 URI 进行实时翻译。例如,如果我想访问http://myserver/
using上的资源http://my-reverse-proxy/myserver
,则所有绝对链接和顶级链接都喜欢http://myserver/somecontent1.ext
或/somecontent2.ext
需要修改。
一个 HTML 标签
<img src="/sample.png">
因此将被翻译为
<img src="/myserver/sample.png">
从我的角度来看,有一些方法:
1)使用正则表达式和字符串替换来查找所有相关的HTML标签及其使用捕获组的路径并进行一些字符串替换。
2) 解析整个 HTML 内容,对解析树进行一些转换,并将结果漂亮地打印回有效的 HTML 资源。
这就是这个问题的全部内容:您是否有任何经验,哪种解决方案可能更快,甚至更合理?你知道我可以用来不重新发明轮子的框架吗?由于此过程稍后也应用于基于 CSS 和 XML 的资源,因此它不应该是依赖于 HTML 的解决方案。
提前致谢!