我的目标是将HTML代码的二进制格式存储在iframe中。我想将标签转换为HTML。在JavaScript中,我将div内容转换为HTML,并通过隐藏字段获取HTML内容。
在那个页面中我有一个ajax HTML编辑器,所以我得到了很大的空白空间。我试图使用正则表达式删除它:
Regex.Replace(htmlformat,"divID",'')
但是它只删除了像div id=""style...
这样的ID所以它删除了空格,但它不是HTML格式。所以iframe webservice无法将其转换为pdf。
我想使用C#在HTML中删除带有标签的div内容。
答案 0 :(得分:0)
您还希望在div标签之前允许其他内容
<div[^>]*class="footer"[^>]*>(.*?)</div>
此外,不区分大小写。您可能需要转义引号之类的内容或结束标记中的斜杠。你在做什么背景?
另请注意,使用正则表达式进行HTML解析可能会非常讨厌,具体取决于输入。在下面的答案中提出了一个很好的观点 - 假设你有一个类似的结构:
<div>
<div class="footer">
<div>Hi!</div>
</div>
</div>
尝试为此构建正则表达式是一种灾难。最好的办法是将文档加载到DOM中,并对其进行操作。
应该紧密映射到XML :: DOM的伪代码:
document = //load document
divs = document.getElementsByTagName("div");
for(div in divs) {
if(div.getAttributes["class"] == "footer") {
parent = div.getParent();
for(child in div.getChildren()) {
// filter attribute types?
parent.insertBefore(div, child);
}
parent.removeChild(div);
}
}