English 中文(简体)
将XML与Javascript(最终用于电话)
原标题:Parsing XML with Javascript (for eventual use in phonegap)

我试图把一些XML混为一谈,结果用javascript语使用电话。 现行标准是:

<Results>
     <Result>
          <FirstName>John</FirstName>
          <Surname>Beech</Surname>
          <Company>CompanyName</Company>
          <Job_Title>Property Department</Job_Title>
          <UserID>184</UserID>
          <CompanyID>CompanyID</CompanyID>
          </Result>
     <Result>
          <FirstName>Rosie</FirstName>
          <Surname>Beech</Surname>
          <Company>CompanyName</Company>
          <Job_Title>Job Title</Job_Title>
          <UserID>10494</UserID>
          <CompanyID>17322</CompanyID>
     </Result>
</Results>

现在,我用下面的java书写字只是提醒大家注意这些答复,但最后,我想提出一个答复表。

<script language="javascript" type="text/javascript">
    window.onload = function () {
        $.ajax({
            type:  GET ,
            url:  Lookupbysurname.aspx?surname=beech ,
            dataType:  html ,
            success: function (data) {


                try {
                    xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
                    xmlDoc.async = "false";
                    xmlDoc.loadXML(data);
                }
                catch (e) {
                    try {
                        parser = new DOMParser();
                        xmlDoc = parser.parseFromString(data, "text/xml");
                    }
                    catch (e) {
                        alert(e.message);
                        return;
                    }
                }

                for (var i = 0; i < xmlDoc.getElementsByTagName("CompanyID")[0].childNodes[0].length; i++) {
                    alert(xmlDoc.getElementsByTagName("CompanyID")[0].childNodes[0].nodeValue);
                }
            }
        });
    }
</script>

然而,此时此刻,它只是提醒人们注意同样的反应。 难道我把 lo合起来错了吗? 在联合材料中,我直言! 任何帮助都将受到赞赏。

最佳回答

您可避免使用<代码>parseXML(),使用XMLHttpRequest sresponseXML,该财产按以下方式包装:

$.ajax({
    type:  GET ,
    url:  Lookupbysurname.aspx?surname=beech ,
    dataType:  xml ,
    success: function(xmlDoc) {
        alert(xmlDoc.getElementsByTagName("CompanyID")[0].nodeValue);
    }
});

既然你已经使用 j,你可以利用 j子来verse蔑 X。

var $xml = $(xmlDoc);
$xml.find("CompanyID").each(function() {
    alert( $(this).text() );
});

正式法典:

$.ajax({
    type:  GET ,
    url:  Lookupbysurname.aspx?surname=beech ,
    dataType:  xml ,
    success: function(xmlDoc) {
        var $xml = $(xmlDoc);
        $xml.find( CompanyID ).each(function() {
            alert( $(this).text() );
        });
    }
});
问题回答

然而,此时此刻,它只是提醒人们注意同样的反应。

当然,你每次都使用相同的指数(0)。

但是,TL;DR的版本是:因为你已经使用 j,只是使用 j。 您不仅可以使用$.parseXML取代你复杂的子母体制造逻辑,但也可以使用 j子做 lo。 这里,我假定你会再次试图绕过<代码>。 CompanyIDs:

var xmlDoc = $.parseXML(data);
var $xml = $(xmlDoc);
$xml.find("CompanyID").each(function() {
    alert($(this).text());
});

rel=“nofollow>> 活的实例 >>><>>>><>>>>>源


Building up to that, your code is using 0 rather than i:

for (var i = 0; i < xmlDoc.getElementsByTagName("CompanyID")[0].childNodes[0].length; i++) {
    // This is always 0 -----------------------------------------v 
    alert(xmlDoc.getElementsByTagName("CompanyID")[0].childNodes[0].nodeValue);
}

如果你想要接下去,请使用<代码>i,而不是0


但是,由于你每次重新回头并重复调查,这一休息时间为hugely<>。 相反:

var nodes = xmlDoc.getElementsByTagName("CompanyID")[0].childNodes;
for (var i = 0; i < nodes.length; i++) {
    alert(nodes[i].nodeValue);
}

当然,使用<代码>第1Child和nextSibling:

var node;
for (node = xmlDoc.getElementsByTagName("CompanyID")[0].firstChild;
     node;
     node = node.nextSibling) {
    alert(node.nodeValue);
}

但我想看一下你的XML,我怀疑你想听从<代码>。 CompanyID nodes, than the child nodes of them:

var node;
for (node = xmlDoc.getElementsByTagName("CompanyID");
     node;
     node = node.nextSibling) {
    alert(node.firstChild.nodeValue);
}

但是,通过更多地使用你已经使用的图书馆,你能够以较少的代码这样做。





相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.