Jquery从请求中解析xml

时间:2010-07-07 09:34:33

标签: javascript jquery xml parsing

我正在使用Jquery。 我有一个从Web服务返回的xml。 所以我想从中提取一些价值。

这是从webservice:

返回的xml示例
<ns3:ExecuteResponse xmlns:ns3="http://www.opengis.net/wps/1.0.0"
  xmlns:ns1="http://www.opengis.net/ows/1.1"
  xmlns:ns2="http://www.w3.org/1999/xlink"
  statusLocation="http://webservice:9090/b57c-43b8-40b2-8e09-4d6489df55be"
  serviceInstance="http://xyz.it:9090/services/http-post"
  version="1.0.0" service="XXX">
  <ns3:Process ns3:processVersion="0.2">
    <ns1:Identifier>OM_BIOCLIM</ns1:Identifier>
    <ns1:Title xml:lang="en-US">Bioclim</ns1:Title>
    <ns1:Abstract xml:lang="en-US">abcdefghi</ns1:Abstract>
  </ns3:Process>
  <ns3:Status creationTime="2010-07-07T10:42:05.768+02:00">
    <ns3:ProcessAccepted>ProcessConfiguration has been
    accepted.</ns3:ProcessAccepted>
  </ns3:Status>
  <ns3:ProcessOutputs />
</ns3:ExecuteResponse>

所以这是我的代码:

    $.ajax({
      type: 'POST',
      url: "php/geoproxy.php?url=http://www.abc.it:9090/1.0.0-service/services/http-post",//wpsUrl,
          contentType: "text/xml",
      data: xmlRequest,
      dataType: "text/xml",
      success: function(xml){

        var xmlDoc;                             
        if (window.DOMParser)
          {
          parser=new DOMParser();
          xmlDoc=parser.parseFromString(xml,"text/xml");
          }
        else // Internet Explorer
          {
          xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
          xmlDoc.async="false";
          xmlDoc.loadXML(xml);
          } 

            //extract statusLocation attribute
        },
    error: function(XMLHttpRequest, textStatus, errorThrown) { 
      alert("error "+XMLHttpRequest); 
    } 
});

如何提取ns3的statusLocation属性:ExecuteResponse节点?

非常感谢。

1 个答案:

答案 0 :(得分:1)

你可以做到这么简单

 success: function(xml){
       statusLocation = $(xml).attr('statusLocation')
 }

并且不使用ActiveX控件