У меня есть файл HTML5 с javascript для чтения в локальном XML-файле.Невозможно отобразить имя элемента XML, используя Javascript
Один элемент в структуре XML является динамическим и содержит внутренний xml, без значения.
При попытке отобразить это имя на веб-странице, все, что я вижу, это #text
.
Пример XML:
<Students>
<student id="1">
<Connor>
<age>20</age>
<gender>male</gender>
</Connor>
</student>
<student id="2">
<Fiona>
<age>25</age>
<gender>female</gender>
</Fiona>
</student>
</Students>
Javascript:
var x = xmlDoc.getElementsByTagName("student");
for(i = 0; i < x.length; i++)
{
var id = x[i].getAttribute("id");
var name = x[i].childNodes[0].nodeName; // produces '#text'
// var name = x[i].firstChild.nodeName; // produces '#text'
document.write("<p>name = " + x[i].childNodes[0].nodeName + "</p>"); // produces '#text'
var age = x[i].getElementsByTagName("age")[0].childNodes[0].nodeValue;
var gender = x[i].getElementsByTagName("gender")[0].childNodes[0].nodeValue;
var student= {id:id, name:name, age:age, gender:gender };
}
В моем примере XML я понимаю, что имя студента может быть лучше хранится, но это всего лишь пример, основанный на фиксированном XML структура, с которой я работаю.
Кроме того: чтение и отображение XML-файла работает только при работе с IDE. В конечном итоге мне захотелось запустить файл .html и прочитать javascript-код в XML-файле (хранящемся в том же месте, что и файл html), и отобразить его данные.
Редактировать: Первая часть решена. Все еще можно было использовать помощь над «Далее» выше.
Привет Джей. Спасибо, что ответили. Кажется, это не похоже на 'x [i] .children [0] .nodeName': S Я попытался использовать' write() ', сначала распечатав тестовое сообщение, затем вашу предложенную строку, а затем еще одно тестовое сообщение. Все, что я вижу, это первое тестовое сообщение, в котором указано, что «дети» не определены. – tjheslin1
Ahh Мне нужно найти свой код и вернуться к вам! – Jay
Я решил это сейчас и разместил ссылку на соответствующий вопрос. Вы были верны в отношении nodeType, так что спасибо. : D – tjheslin1