30/09/2018, 18:37

Hỏi về XML và XML DOM Parser trong Android

Em có 1 file xml mẫu, như bên dưới.

Các anh chị xem qua rồi trả lời giúp em, em hại ão quá mà chưa phân biệt được

ở đây có bao nhiêu NODES ? và có bao nhiêu NODE là ELEMENT ?

Document doc = builder.parse(fileInputStream);
Element root = doc.getDocumentElement();
NodeList list = root.getChildNodes();

với lệnh ở trên thì em lấy được list.getLength() =11 ? em không hiểu các node là con của root kia sẽ gồm những gì

Gió viết 20:47 ngày 30/09/2018

Gồm 5 node là employee và 6 node là TextNode là khoảng trắng giữa các employee hoặc employee với root

Điệp viết 20:43 ngày 30/09/2018

6 node là TextNode là khoảng trắng giữa các employee hoặc employee với root

phiền bác giải thích lại đoạn này e chưa thông lắm HIc

Gió viết 20:44 ngày 30/09/2018

< employees>khoảng trắng - textNode< employee>…

Điệp viết 20:41 ngày 30/09/2018

khoảng trắng được tính là 1 node hả

Không có Hỏi về XML và XML DOM Parser trong Android mà chỉ có Hỏi về XML và XML DOM Parser trong Java

Phải có 16 note. 11 là một sự khó hiểu rất khó hiểu.

Phan Hoàng viết 20:43 ngày 30/09/2018

Vì file XML của bạn là file được format lại cho dễ nhìn, do đó giữa các node child có các TEXT_NODE (ở đây chính là các dấu ngắt dòng, hoặc dòng trống, hoặc … một cái gì đó tuy không hiển thị ở bảng mã ASCII nhưng vẫn có bit dữ liệu ở đó. Muốn xem bit gì thì bạn dùng hexedit mà ngó).

Do đó bạn có:

  • 5 ELEMENT_NODE
  • 6 TEXT_NODE (bắt đầu trước ELEMENT_NODE đầu tiên, và dưới cái ELEMENT_NODE cuối cùng)

= 11

Nên có kiểm tra logic
if (node.getNodeType() == Node.ELEMENT_NODE)
{

}

hoặc dùng hàm lấy ELEMENT_NODE: getElementsByTagName()

Phan Hoàng viết 20:42 ngày 30/09/2018

@Gió:
TEXT_NODE
<employee></employee>
TEXT_NODE

chứ TEXT_NODE không phải nằm trong ELEMENT_NODE, nó ngang cấp với ELEMENT_NODE.
Trước kia với bản DOM parser 1.5 thì nó không care text_node, nhưng sang bản 2.0 thì bộ thư viện của W3C này nó có tính text_node, giúp cho việc handle các file XML dễ dàng hơn.

p/s: bó tay không edit được cái tag employee.

Bài liên quan
0