问题:
提取两个标头之间的所有html,包括标头html.标题文本是已知的,但不是格式,标记名称等.它们不在同一个父项中,并且可能(好吧,几乎可以肯定)在其自己的子项中有子子项).
为了澄清:标题可以在< h1>内.或者< div>或任何其他标签.它们也可以被< b> ;,< i>,< font>包围.或更多< div>标签.关键是:元素中唯一的文本是标题文本.
我可用的工具是:使用WebBrowser控件的C#3.0,或Jquery / Js.
我已经采用Jquery路线,遍历DOM,但我遇到了孩子的问题并适当地添加它们.这是迄今为止的代码:
function getAllBetween(firstEl,lastEl) {
var collection = new Array(); // Collection of Elements
var fefound =false;
$('body').find('*').each(function(){
var curEl = $(this);
if($(curEl).text() == firstEl)
fefound=true;
if($(curEl).text() == lastEl)
return false;
// need something to add children children
// otherwise we get
etcif (fefound)
collection.push(curEl);
});
var div = document.createElement("DIV");
for (var i=0,len=collection.length;i
$(div).append(collection[i]);
}
return($(div).html());
}
我应该继续走这条路吗?通过某种递归函数检查/处理子项,还是一种全新的方法更适合?
为了测试,这里有一些示例标记:
Oops |
任何建议或想法都非常感谢!