如何解析这个HTML响应?

时间:2012-10-11 05:36:30

标签: javascript

我已经发布了我的HTML回复。任何人都可以帮我解析以下回复吗?

<?xml version="1.0" encoding="utf-8"?>

<string xmlns="http://localhost:53179/hdfcmobile">
    {"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}
</string>

4 个答案:

答案 0 :(得分:2)

这不是HTML响应。这是一个JSON响应。

您可以使用众多JSON解析器库之一来解析它。 http://www.json.org有一个全面的列表。


<强>更新

对于新版本的问题,您看起来似乎是一个XML文档,其中包含嵌入在XML元素中的JSON。

您需要使用XML解析器来提取string元素的文本内容,然后使用JSON解析器来解析该文本。

为什么人们认为将XML和JSON混合起来是个好主意?

答案 1 :(得分:0)

您的回复是JSON字符串。要使用它,您应该将其转换为JavaScript对象。 eval函数可用于此目的:

var response = '{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}';
eval('var a='+response);
alert("Status = " + a.Status);
alert("Data.Loginstatus = " + a.Data[0].Loginstatus);
alert("Data.agentid = " + a.Data[0].agentid);

<强>更新

问题已经更新,因为我离开了答案,所以这里是我的回答:)。为了从获得的XML响应中提取JSON字符串,您可以使用正则表达式"<string[^>]*>(.*?)<\/string>",如下所示:

var responseText = '<?xml version="1.0" encoding="utf-8"?>

<string xmlns="http://localhost:53179/hdfcmobile">
    {"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}
</string>';

var oRegExp = new RegExp("<string[^>]*>(.*?)<\/string>", "ig");
var matches = oRegExp.exec(responseText);
var response = matches[1];

之后,您可以使用上面编写的代码将response转换为JavaScript对象。

答案 2 :(得分:0)

这只是json数据。您应该能够将其读入对象:

var JSONtext = '{"Status":"True","Data":[{"Loginstatus":"Success","agentid":1004}]}'
var myObject = JSON.parse( JSONtext );

至于为什么你在xml中获取一个json对象作为响应,这是另一回事..通常你的响应应该是json或xml

答案 3 :(得分:0)

这看起来像是在其中一个节点中使用JSON的XML响应 - 而不仅仅是JSON响应。您可能会从该节点中提取JSON字符串,然后使用JSON.parse(extracted_json)

进行解析