如何从JavaScript中的AJAX响应中提取主体(<;body>;…<;/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扩展还有

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扩展还有一种简单的方法


希望这对你有帮助

最简单但最糟糕的方法是对响应文本进行简单的字符串黑客攻击

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);
}