XML của tôi trông giống như this-getChildNodes đưa ra kết quả bất ngờ
<collected_objects>
<object flag="complete" id="objId" version="1">
<variable_value variable_id="varId">ValueGoesHere</variable_value>
<reference item_ref="2"/>
</object>
<object comment="objComment" flag="complete" id="objId" version="1">
<reference item_ref="1"/>
</object>
</collected_objects>
Tôi đang xử lý nó sử dụng dưới đây số-
Document dom = parser.getDocument();
NodeList collected_objects = dom.getElementsByTagName("object");
System.out.println("Number of collected objects are " + collected_objects.getLength());
for (int i = 0; i < collected_objects.getLength(); i++) {
Node aNode = collected_objects.item(i);
//get children of "objects"
NodeList refNodes = aNode.getChildNodes();
System.out.println("# of chidren are " + refNodes.getLength());
//print attributes of "objects"
NamedNodeMap attributes = aNode.getAttributes();
for (int a = 0; a < attributes.getLength(); a++) {
Node theAttribute = attributes.item(a);
System.out.println(theAttribute.getNodeName() + "=" + theAttribute.getNodeValue());
}
}
nó ra như-
Number of collected objects are 2
# of chidren are 5
flag=complete
id=objId
version=1
# of chidren are 3
comment=objComment
flag=complete
id=objId
version=1
Câu hỏi của tôi là lý do tại sao "# của trẻ em thất bại" là 5 và 3 tương ứng? Tôi không nên mong đợi 2 và 1 tương ứng? đối tượng vì lần đầu tiên có "variable_value
" và "reference
" và đối tượng thứ hai chỉ có "reference
"
Về cơ bản, mục đích của tôi là để xử lý trẻ em của "đối tượng".