如何从字符串构建文档
我有一个字符串,类似于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;
答案 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/>
元素应该没问题。