JavaScript xml объект, проблема с узлом доступа - PullRequest
0 голосов
/ 31 марта 2020

Привет, я пытаюсь получить восход и закат солнца от объекта xml. Я могу получить страну и вывести ее на страницу html, но когда я пытаюсь получить солнце или даже координаты, она просто отображается как неопределенная. Я понимаю, что не могу получить textContent, потому что у них его нет, у них есть значения, верно?

Xml данные с использованием http-запроса. Я вывожу это на консоль, чтобы видеть, что я получаю взамен.

 <current>
     <city id="2343" name="Edmonton">
      <cooord lon="444" lat="54">
      </coord>
      <country>CA</country>
      <sun rise="2020-03-01t02:07:33" set="2020-03-01t07:33"></sun
     </city>
    </current>

JavaScript Только

function loadWeather(e){
  if (xmlhttp_weather.status == 200) {

    weatherXML = xmlhttp_weather.responseXML;
    weatherCount = weatherXML.getElementsByTagName("city");
    console.log(weatherXML);
    let weatherList = weatherCount[0].getElementsByTagName("sun");
    console.log(weatherList[0].attributes);


    console.log(weatherCount);

Я просто выводю все на консоль, чтобы увидеть, Я могу получить значения из элемента sun, но не могу получить значения из него. Как только я получу значения, я попытаюсь отобразить их в моем html. Я застрял на этом некоторое время, я прочитал и перепробовал много разных вещей и не могу передать то, что у меня есть, и все возвращается как неопределенное или ошибка ... Любая помощь будет отличной, thx

1 Ответ

0 голосов
/ 31 марта 2020

Используйте getAttribute и ссылайтесь на него по имени

// just getting the xml into an object
var txt = `
  <current>
    <city id="2343" name="Edmonton">
      <coord lon="444" lat="54"></coord>
      <country>CA</country>
      <sun rise="2020-03-01t02:07:33" set="2020-03-01t07:33"></sun>
    </city>
  </current>`
var parser = new DOMParser();
var weatherXML = parser.parseFromString(txt, "text/xml");

// grab the first city
var city = weatherXML.getElementsByTagName("city")[0]
// grab the sun (hot!)
var sun = city.getElementsByTagName("sun")[0]

// read the attributes
console.log('rise:', sun.getAttribute('rise'))
console.log('set:', sun.getAttribute('set'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...