<linkman id="1">
<name>小蔡</name> ...
</linkman>
<linkman id="2">
<name>小李</name> ... <!-- 目標 -->
</linkman>
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(new File("contacts.xml"));
Element root = doc.getDocumentElement(); // 根元素
// 1. 獲取所有 linkman
NodeList linkmanList = root.getElementsByTagName("linkman");
// 2. 取第二個 (索引 1)
Element secondLinkman = (Element) linkmanList.item(1);
// 3. 獲取其下 name 元素
NodeList nameList = secondLinkman.getElementsByTagName("name");
Element nameEl = (Element) nameList.item(0);
// 4. 取文本內容
String name = nameEl.getTextContent().trim(); // "小李"
System.out.println(name);
| 方法 | 返回 | 說明 |
|---|---|---|
| getElementsByTagName | NodeList | 遞歸查找所有匹配標籤 |
| item(index) | Node | 按索引取節點,0 基 |
| getTextContent() | String | 獲取節點及所有子孫文本 |
| getNodeValue() | String | 僅獲取當前節點值(元素節點為 null) |
getElementsByTagName("linkname") → 標籤名寫錯(應為 linkman)。Element 直接調用元素專有方法。trim() 導致換行/空格干擾。DOM 解析 XML 核心流程:**工廠 → 建構器 → Document → 根元素 → getElementsByTagName → 索引定位 → getTextContent**。掌握節點類型轉換(Node → Element)與索引基數(0 基)即可準確提取任意層級數據。