如何从字符串构造文档

时间:2014-08-05 01:30:33

标签: javascript

如何从字符串构建文档

我有一个字符串,类似于html,我想在html文本中提取元素,我知道我可以使用htmlparser和java,但是如何用javascript做同样的函数?

如何从字符串构造文档,createHTMLDocument是否有效?

还是以其他方式提取html文本中的元素?

例如:

我的html文字为:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"               "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
<title>titleValue</title> 
<meta name="description" content="It is a good way to learn science." /> 
<meta name="keywords" content="Symfony2,Redis,PHP" /> 
<meta name="author" content="CSDN.NET" /> 
<meta name="Copyright" content="CSDN.NET" /> 
</head> 
<body> 
.......................... 
</body> 
</html>

如何获得“描述”的价值      

这是我的代码,但输出为0,出了什么问题?

                                var el = document.createElement("div");
                                el.innerHTML = ' <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>titleValue</title> <meta name="description" content="It is a good way to learn science." /> <meta name="keywords" content="Symfony2,Redis,PHP" /> <meta name="author" content="CSDN.NET" /> <meta name="Copyright" content="CSDN.NET" /> </head> <body> hello</body> </html>';
                                var descElements = el.getElementsByTagName("head");
                                document.getElementById("news_content").innerHTML = descElements.length;

1 个答案:

答案 0 :(得分:1)

执行此类操作的最简单方法是使用类似jQuery的库。这是使用jQuery(see a demo)完成此任务的一种方法:

var markup = '<!DOCTYPE ...';

var parsed = $(markup);

var description = parsed.filter("meta[name='description']").attr('content');

alert(description);

请注意,您将无法访问所有元素(例如,<head/>元素未被表示),因为并非所有元素在另一个文档的上下文中都是合法的。但是,<meta/>元素应该没问题。