Текстовые данные хранятся в текстовых узлах, а не в узлах элементов. Попробуйте что-то вроде этого:
if (y[j].firstChild != null) {
document.write(y[j].firstChild.nodeValue);
}
childNodes[0]
получит первый дочерний узел каждого элемента <title>
, <author>
, <year>
и т. Д., Который в каждом случае будет текстовым узлом, содержащим текст элемента. Этот текстовый узел будет иметь пригодный для использования nodeValue
.
if
необходим, чтобы отсеять дочерние узлы ваших элементов <book>
, которые не являются элементами. Там на самом деле есть скрытые текстовые узлы, содержащие пробелы и символы новой строки, которые нужно игнорировать.