2016-06-29 4 views
0
<Root> 
    <Child1>First Child Value</Child1> 
    <Child2> 
    <Age>Age1 Value</Age> 
    <Age /> 
    <Name /> 
    </Child2> 
    <Child3>3-1</Child3> 
    <Child3>3-2</Child3> 
    <Child4>4</Child4> 
    <Child5>5</Child5> 
    <Child6>6</Child6> 
</Root> 

<script> 
    var xmlDoc = xml.responseXML; 
    var x = xmlDoc.getElementsByTagName("Root"); 
    alert(y[0].getElementsByTagName("Age")[0].childNodes[0].nodeValue); 
    alert(y[0].getElementsByTagName("Age")[1].childNodes[0].nodeValue); 
<script> 

Я пытаюсь получить нулевое значение от «корня»> «Child2»> «Возраст [1]», но я получаю сообщение «0x800a138f - JavaScript ошибка во время выполнения: Не удалось получить свойство «nodeValue» неопределенной или нулевой ссылки ».Javascript XML - как вернуть нулевое значение

Кто-нибудь знает, где я ошибаюсь?

ответ

1

getElementsByTagName("Age")[1] дает вам <Age />.

У него нет дочерних узлов, поэтому .childNodes[0] дает вам null.

null.nodeValue не допускается.


Вы должны проверить, если y[0].getElementsByTagName("Age")[1].childNodes[0] это истинное значение, прежде чем пытаться читать свойства на нем.

+0

Сэр, вы звезда! –

Смежные вопросы