【发布时间】:2014-07-19 18:33:11
【问题描述】:
您好,这是我关于 stackoverflow 的第一个问题,所以请客气。
我想提取一个 html 元素,但不仅是它应该保留其样式和功能的元素。所以我想选择想要的 html 元素,然后从所有其他元素中删除所有样式。我要问的是:
- 我有哪些要删除?
- 显然我必须从父元素中删除所有 样式属性,例如 height、width、backgroundColor , ...
- 除此之外,class 和 id 标签,因为它们可以从 css 或类似的东西获得样式 (这会影响我想要的子元素吗?以某种缺失的方式提取?)
- 而且我必须删除其他父元素的所有内容(又说删除除脚本标签之外的所有父元素?)
- 删除不是所选元素的父级或子级的所有其他元素树
- 哪些内容我不能删除?
- 我不应该删除脚本标签,因为这样我会失去功能
- 另外我不应该删除 Html 标签 body 标签以保持有效的 Html
在保留和删除所有想要和不需要的东西之后,我只想要选定的元素及其内容和子元素。如果所选元素是表单或包含表单,则表单应该 100% 工作。
你能帮我完成这份清单以及一些想法,除了 html 之外还有什么要考虑的?
谢谢!
我尝试使用 C# mshtml/agilitypack 来解决这个问题,但这并不重要。
这样我就可以在我的网络浏览器中显示单个(选定的)html 元素,但保留它的功能。
【问题讨论】:
-
似乎通过不同的路线更容易做到这一点......例如创建一个页面,该页面将获取一个url和选择器参数来加载元素并只显示它们......我不知道。 .我看不出你为什么要尝试做如此复杂的操作。不过,我没有投反对票
-
首先感谢您的遮阳篷,我在我的问题中添加了两行:)。我不确定我是否理解正确,但我试图仅获取选定的 html 元素并将其呈现在新站点上,但结果是纯文本。所以我认为这是一种更好的方法来减少给定的网站,所有不需要的东西都会被删除,所以 javascript 功能和提取的元素可能需要的所有东西都留在那里。
-
老实说。我不认为有任何简单的解决方案。范围太广了,如果没有非常具体的代码和在客户端上进行非常繁重的处理,几乎不可能满足您的要求。就个人而言,我会说这种方法是不切实际的,并且在我开始将其作为我自己的项目进行工作之前,方法或要求都必须改变。作为外部消息来源,我不会碰这个。对不起。 ://
-
谢谢你,但这应该是最简单的部分,但如果我得到一些结果,我会在这里发布。