Не удается прочитать свойство 'childNodes' из неопределенного, но список работает - PullRequest
1 голос
/ 18 марта 2019

У меня есть следующий код, который должен возвращать два значения дочерних узлов от каждого родительского узла в файле XML.

<?php session_start(); ?>
<html>

<head>
  <title> ADM Asset Availability </title>
  <!--  <meta http-equiv="refresh" content="10"> -->
</head>

<body onload="AssetUpdate()">

  <script type="text/javascript">
    var xhttp;
    xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        AssetUpdate(this);
      }
    };
    xhttp.open("GET", "Assets.xml", true);
    xhttp.send();

    function AssetUpdate(xml) {
      var n, x, i, txt, xmlDoc;
      xmlDoc = xml.responseXML;
      txt = "";
      x = xmlDoc.getElementsByTagName("Asset");

      for (i = 0; i < x.length; i++) {
        var txt1 = "<dvi class='rowContainer'>";
        var txt2 = x[i].getElementsByTagName("AssetName")[0].childNodes[0].nodeValue;
        var txt3 = "-";
        var txt4 = x[i].getElementsByTagName("Live")[0].childNodes[0].nodeValue;
        var txt5 = "</div>";
        txt += txt1 + txt2 + txt3 + txt4 + txt5;
      }
      document.getElementById("Asset").innerHTML = txt;
    };
  </script>

  <div id="Asset">

  </div>

</body>

</html>

txt2 возвращает запрошенное значение без каких-либо проблем.Однако txt4 (точно структурированный) вызывает ошибку, обнаруженную в браузере:

Uncaught TypeError: Невозможно прочитать свойство 'childNodes' undefined в AssetUpdate AssetPage.php: 33)

Я пробовал около 30 вариантов имен кодов, циклов и тегов, которые по-прежнему приводят к одной и той же ошибке.

Пожалуйста, помогите

Это xml для ссылки;

<?xml version="1.0" ?><Assets>
<Asset>5
    <AssetID>1</AssetID>
    <AssetName>Laser</AssetName>
    <Live>Test</Live>
</Asset>
<Asset>7
    <AssetID>2</AssetID>
    <AssetName>Press</AssetName>
    <Live>Test1</Live>
</Asset>
<Asset>9
    <AssetID>3</AssetID>
    <AssetName>Fab</AssetName>
    <Live>Test2</Live>
</Asset>
<Asset>blue
    <AssetID>78</AssetID>
    <AssetName>Paint</AssetName>
    <Live>Test3</Live>
</Asset></Assets>

Я проверил и нашел эту запись , но не сделал ошибку, указанную в этой теме.

РЕДАКТИРОВАТЬ

Navigated to http://localhost/ADMApp/AssetPage.php 
AssetPage.php:24 Uncaught TypeError: Cannot read property 'responseXML' of undefined
at AssetUpdate (AssetPage.php:24)
at onload (AssetPage.php:6)
AssetUpdate @ AssetPage.php:24
onload @ AssetPage.php:6
AssetPage.php:34 HTMLCollection []length: 0__proto__: HTMLCollectionitem: ƒ 
item()arguments: (...)caller: (...)length: 1name: "item"__proto__: ƒ 
()apply: ƒ apply()arguments: (...)bind: ƒ bind()call: ƒ call()caller: 
(...)constructor: ƒ Function()length: 0name: ""toString: ƒ 
toString()Symbol(Symbol.hasInstance): ƒ [Symbol.hasInstance]()get arguments: 
ƒ ()set arguments: ƒ ()get caller: ƒ ()set caller: ƒ ()__proto__: 
Object[[FunctionLocation]]: <unknown>[[Scopes]]: Scopes[0][[Scopes]]: 
Scopes[0]length: (...)namedItem: ƒ namedItem()constructor: ƒ 
HTMLCollection()Symbol(Symbol.iterator): ƒ 
values()Symbol(Symbol.toStringTag): "HTMLCollection"get length: ƒ 
length()__proto__: Object
AssetPage.php:35 undefined
AssetPage.php:36 Uncaught TypeError: Cannot read property 'childNodes' of 
undefined
at AssetUpdate (AssetPage.php:36)
at XMLHttpRequest.xhttp.onreadystatechange (AssetPage.php:15)
AssetUpdate @ AssetPage.php:36
xhttp.onreadystatechange @ AssetPage.php:15
XMLHttpRequest.send (async)
(anonymous) @ AssetPage.php:19
AssetPage.php:19 XHR finished loading: GET 
"http://localhost/ADMApp/Assets.xml".
(anonymous) @ AssetPage.php:19

Я не знаю лучшего способа отображения этой кодировки ошибок, поэтому, пожалуйста, сообщите мне, если это не правильно (также изображение фактического дисплея ниже).

Если вам нужно, чтобы я полностью расширил HTMLCollectionтогда дайте мне знать, но это очень большой каскад.

Журнал ошибок

Спасибо за помощь!

1 Ответ

0 голосов
/ 19 марта 2019

Хорошо, я все равно буду благодарен за любой другой ввод, но, насколько я могу судить, я ничего не изменил, но работа на другом компьютере работает.И после перезагрузки моего компьютера после запуска на другом компьютере, он также работает .... Я думаю, что это была проблема с моим сервером локального хоста, который решил сам при перезагрузке .?

Спасибо Коннор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...