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ì
Bài liên quan
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
phiền bác giải thích lại đoạn này e chưa thông lắm HIc
< employees>khoảng trắng - textNode< employee>…
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.
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ó:
= 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()
@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.