是否有类似于simple_html_dom.php的JavaScript?

时间:2011-10-16 17:33:24

标签: javascript parsing dom titanium appcelerator

我正在使用Appcelerator Titanium构建iPhone应用程序,我需要将一个HTML字符串(可能包含无效的HTML,如缺少的标签,而不是我的错)转换为DOM对象。在这个DOM元素中,我需要找到一个特定的<div>,并将此<div>的内容放在WebView中。

无论如何,我正在寻找类似于PHP的Simple HTML DOM脚本,以便在DOM中搜索此<div>。我希望脚本扫描(无效)HTML字符串,并获取<div>的innerHTML。

我怎样才能在JavaScript中做到最好?

1 个答案:

答案 0 :(得分:2)

下面的代码是基本的字符串到DOM转换器。有关详细说明,请参阅链接的答案。

function string2dom(html, callback){    
    /* Create an IFrame */
    var iframe = document.createElement("iframe");
    iframe.style.display = "none";
    document.body.appendChild(iframe);

    var doc = iframe.contentDocument || iframe.contentWindow.document;
    doc.open();
    doc.write(html);
    doc.close();

    function destroy(){
        iframe.parentNode.removeChild(iframe);
    }
    if(callback) callback(doc, destroy);
    else return {"doc": doc, "destroy": destroy};
}

此代码段不会清理HTML。脚本将被执行,外部源将被加载。可以在 this answer

找到代码和HTML清理程序的说明

用法(示例),小提琴:http://jsfiddle.net/JFSKe/

string2dom("<html><head><title>Test</title></head></html>", function(doc, destroy){
    alert(doc.title); /* Alert: "Test" */
    destroy();
});

var test = string2dom("<div id='secret'></div>");
alert(test.doc.getElementById("secret").tagName); /* Alert: "DIV" */
test.destroy();