如何从JavaScript中的AJAX响应中提取主体(<;body>;…<;/body>;)标记之间的片段
AJAX响应返回完整的HTML页面。我需要提取body(如何从JavaScript中的AJAX响应中提取主体(<;body>;…<;/body>;)标记之间的片段,javascript,html,ajax,Javascript,Html,Ajax,AJAX响应返回完整的HTML页面。我需要提取body(和)标记之间的片段。这需要使用JavaScript在客户端完成。任何帮助都将不胜感激。如果您的HTML页面位于Web上,那么您可以使用YQL e、 如果您的页面url是,并且您希望所有内容都包含在body元素中 你喜欢这样吗 select * from html where url="http://xyz.com/page.html" and xpath='//body' 如果您是YQL新手,请阅读此内容 使用Chromyqlip扩展还有
和
)标记之间的片段。这需要使用JavaScript在客户端完成。任何帮助都将不胜感激。如果您的HTML页面位于Web上,那么您可以使用YQL
e、 如果您的页面url是,并且您希望所有内容都包含在body元素中
你喜欢这样吗
select * from html where url="http://xyz.com/page.html" and xpath='//body'
如果您是YQL新手,请阅读此内容
使用Chromyqlip扩展还有一种简单的方法
希望这对你有帮助 最简单但最糟糕的方法是对响应文本进行简单的字符串黑客攻击
var bodyhtml= html.split('<body>').pop().split('</body>')[0];
尽管这也会执行文档中的所有脚本,可能会对其进行更改,因此也可能无法令人满意
// Get the XML object for the "body" tag from the XMLHttpRequest/ActiveXObject
// object (requestObj).
// NOTE: This assumes there is only one "body" tag in your HTML document.
var body = requestObj.responseXML.getElementsByTagName("body")[0];
// Get the "body" tag as an XML string.
var bodyXML;
// for Internet Explorer
if (body.xml) {
bodyXML = body.xml;
}
// for every other browser
if (typeof (XMLSerializer) != "undefined") {
var serializer = new XMLSerializer();
bodyXML = serializer.serializeToString(body);
}
这将以字符串的形式获取“body”标记的XML。不幸的是,它仍然包含“”和“”,因此如果您只需要标记的内容,则必须将这些内容去掉
您可能想看看上的第二个示例(“示例HTML代码2”)。您使用的是javascript库还是香草javascript?感谢所有回答的人。现在,我们采用子字符串方法,因为我们知道返回的HTML的确切格式(我们自己生成)。我将把YQL作为这种需求的通用技术。
// Get the XML object for the "body" tag from the XMLHttpRequest/ActiveXObject
// object (requestObj).
// NOTE: This assumes there is only one "body" tag in your HTML document.
var body = requestObj.responseXML.getElementsByTagName("body")[0];
// Get the "body" tag as an XML string.
var bodyXML;
// for Internet Explorer
if (body.xml) {
bodyXML = body.xml;
}
// for every other browser
if (typeof (XMLSerializer) != "undefined") {
var serializer = new XMLSerializer();
bodyXML = serializer.serializeToString(body);
}