อ่านคำตอบที่นี่: การทำให้เป็นมาตรฐานใน DOM parsing ด้วย java - มันทำงานยังไง?
ฉันเข้าใจว่าการทำให้เป็นมาตรฐานจะลบโหนดข้อความว่างที่อยู่ติดกัน ฉันลองใช้ xml ต่อไปนี้:
<company>hello
wor
ld
</company>
ด้วยรหัสต่อไปนี้:
try {
DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
Document doc = dBuilder.parse(file);
doc.getDocumentElement().normalize();
System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
System.out.println(doc.getDocumentElement().getChildNodes().getLength());
System.out.println(doc.getDocumentElement().getChildNodes().item(0).getTextContent());
} catch (Exception e) {
e.printStackTrace();
}
ฉันมักจะได้รับโหนดลูก 1 โหนดสำหรับองค์ประกอบ "บริษัท" แม้ว่าจะไม่มีการทำให้เป็นมาตรฐานก็ตาม ผลลัพธ์คือ:
Root element :company
1
hello
wor
ld
แล้วมีอะไรผิดปกติที่นี่? ใครช่วยอธิบายได้ไหม? ฉันไม่ควรรับสวัสดีชาวโลกในบรรทัดเดียว