Доступ к данным XML через JavaScript - PullRequest
0 голосов
/ 13 января 2012

Как я могу получить значение моих данных XML, используя JavaScript.Я обращаюсь к моему XML-файлу на своем домене и просматриваю его на стороне клиента.

my.xml

<usr>
  <uid trk="1234">
    <getThis>kdzbnya</getThis>
  </uid>
</usr>

Я хочу получить значение "getThis"

sample.js

function alertThis(){
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        var xmlFile = "my.xml";
        xmlDoc.async="false";
        xmlDoc.load(xmlFile);
        xmlObj=xmlDoc.documentElement;
        try {
            var v = "";
            $.each(xmlObj.childNodes, function(i, valThis) { 
                if(valThis.getAttribute("trk") == "1234"){
                    v += valThis.getElementsByTagName('getThis').nodeValue;
                }   
            });
             alert(v);
        }
        catch(e){
            alert(e);
        }
}

но возвращает неопределенное значение.

Ответы [ 3 ]

2 голосов
/ 13 января 2012

Попробуйте добавить .item(0) или [0] между getElementsByTagName(...) и .nodeValue:

v += valThis.getElementsByTagName('getThis').item(0).nodeValue;

Вам понадобится это, поскольку getElementsByTagName возвращает NodeList (что может напоминать Array). В списке не будет самого nodeValue свойства , но узлы в нем должны.

1 голос
/ 13 января 2012

Я вижу, что вы используете jQuery.

изменить

v += valThis.getElementsByTagName('getThis').nodeValue

на

v += $(valThis).find('getThis').text()
0 голосов
/ 13 января 2012

См. Этот пример http://www.w3schools.com/xml/xml_parser.asp синтаксического анализатора XML. Но на самом деле вы, вероятно, хотите использовать инфраструктуру для загрузки и анализа XML. Их много, посетите microjs.com, чтобы узнать, какие функции вы ищете.

...