Thắc mắc về XML DOM

Mình có một tài liệu sau:

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
	<book category="cooking">
		<title lang="en">Everyday Italian</title>
		<author>Giada De Laurentiis</author>
		<year>2005</year>
		<price>30.00</price>
	</book>
	<book category="children">
		<title lang="en">Harry Potter</title>
		<author>J K. Rowling</author>
		<year>2005</year>
		<price>29.99</price>
	</book>
	<book category="web">
		<title lang="en">XQuery Kick Start</title>
		<author>James McGovern</author>
		<author>Per Bothner</author>
		<author>Kurt Cagle</author>
		<author>James Linn</author>
		<author>Vaidyanathan Nagarajan</author>
		<year>2003</year>
		<price>49.99</price>
	</book>
	<book category="web" cover="paperback">
		<title lang="en">Learning XML</title>
		<author>Erik T. Ray</author>
		<year>2003</year>
		<price>39.95</price>
	</book>
</bookstore>

đây là cây của nó:
image

Mọi người cho mình hỏi sao mình
chạy lệnh này:

xmlDoc = loadXMLDoc("books.xml")
x = xmlDoc.documentsElement.childNode

tại sao length của x lại là 9 vậy, mình debug thấy có 4/9 con là element, 5/9 con là text, nhưng chưa hiểu tại sao

là do có ký tự xuống dòng chen ngang giữa các element node :V

viết thế này:

<abc>hello<def></def>hello again<ghi></ghi></abc>

thì abc có 4 node con :V Text chèn giữa vẫn hợp lệ :V Thay text chèn giữa đó thành ký tự xuống dòng “\n” thì nó cũng coi là text node :V

đọc thêm nè: https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Whitespace_in_the_DOM

ko muốn có text chèn giữa thì viết gộp lại như trên, hoặc xuống dòng kiểu này như trong link mozilla kia:

<abc
  ><def
  ></def
  ><ghi
  ></ghi
></abc>

:persevere::tired_face::sneezing_face:

5 Likes

em cám ơn anh, qua em đang ôn thi :slight_smile: , ổn cả rồi

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?