当前位置: 代码迷 >> JavaScript >> 在 jQuery 中解析 xml
  详细解决方案

在 jQuery 中解析 xml

热度:38   发布时间:2023-06-06 09:47:46.0

我有这个 xml 文件:

    Response: <ns3:ExecuteResponse xmlns:ns3="http://www.opengis.net/wps/1.0.0" xmlns:ns1="net/ows/1.1" xmlns:ns2="http://www.w3.org/1999/xlink" statusLocation="xxxxf62" serviceInstance="http:/http-post" version="1.0.0" service="xxx">
<ns3:Process ns3:processVersion="0.2">
<ns1:Identifier>OM_B</ns1:Identifier>
<ns1:Title xml:lang="en-US">Bioclim</ns1:Title>
<ns1:Abstract xml:lang="en-US">yyyyyyyyyyyyyyyy</ns1:Abstract>
</ns3:Process>
<ns3:Status creationTime="2010-07-06T17:38:13.355+02:00">
<ns3:ProcessAccepted>ProcessConfiguration has been accepted.</ns3:ProcessAccepted>
</ns3:Status>
<ns3:ProcessOutputs />
</ns3:ExecuteResponse>

如何在 ExecuteResponse 节点中提取 statusLocation 属性?

您是否通过XMLHttpRequest收到此 XML 文件? 如果是这样,您可以使用它的responseXML属性。

alert(xhr.responseXML.documentElement.getAttribute("statusLocation"));

或者使用 jQuery:

$.ajax({
    type: "GET",
    url: "yourfile.xml",
    dataType: "xml",
    success: function(xml) {
        alert(xml.documentElement.getAttribute("statusLocation"));
    }
});

这是一种方法:

var xml = null;
function loadXML(myURL){
    $.ajax({
        type: "GET",
        url: myURL,
        dataType: ($.browser.msie) ? "text" : "xml",
        error: function(){
            return;
        },
        success: function(data){
             if (typeof data == "string") {
               xml = new ActiveXObject("Microsoft.XMLDOM");
               xml.async = false;
               xml.loadXML(data);
                } else {
               xml = data;
             }
        }
    });
};
$(loadXML("common/glossary.xml"));

然后

$(xml).find('something')
  相关解决方案