XML-скрипт Google не может вызвать метод Null - PullRequest
0 голосов
/ 12 октября 2018

Я создал скрипт, который подключается к API.Сценарий успешно анализирует данные и создает необходимые выходные данные.Мой скрипт перебирает идентификаторы записей для извлечения данных для каждого идентификатора записи.

Существование дочернего узла не существует для каждого родителя.Таким образом, если родительский узел имеет дочерний узел, мой скрипт работает отлично.

var root2 = root[i].getChild('Assigned').getChildren('Staff');

Однако, когда я сталкиваюсь с родительским идентификатором, где дочерний узел не существует, я получаю эту ошибку.IE в исходных данных клиент не назначил персоналу для этой записи, и, следовательно, персонал узла данных не существует.

TypeError: Невозможно вызвать метод "getChildren" со значением NULL.

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

if(root[i].getChild('Assigned').getChildren('Staff') != '') {

Code

}

Но это все еще нарушает код, и я получаю ошибку.

1 Ответ

0 голосов
/ 12 октября 2018

Я думаю, что причина проблемы в том, что root[i].getChild('Assigned') равен null, и в вашем скрипте, даже если Staff не включен в родительский (Assigned), ошибки не возникает.Чтобы устранить эту проблему, как насчет проверки, имеет ли root[i] дочерний элемент Assigned?Попробуйте следующий пример сценария.

Пример сценария:

if (root[i].getChildren().some(function(e) {return e.getName() == 'Assigned'})) {
  // do something
}

В этом сценарии он проверяет, имеет ли root[i] дочерний элемент Assigned, и когда дочерний элемент найден,это if становится true.Поэтому, если root[i] не имеет дочернего элемента Assigned, if становится false, а do something не выполняется.

Примечание:

  • Iподготовил этот сценарий из ситуации вашего вопроса.Но я не уверен насчет фактических данных XML.Так что, если этот сценарий был не тем, что вы хотите, можете ли вы предоставить данные XML или примеры данных, которые могут воспроизвести вашу ситуацию?К таким образцам данных я хотел бы изменить это.

Ссылка:

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