首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java DOM 解析 XML:獲取第二個 linkman 的 name 內容

     編輯:程式設計綜合問答

XML 結構

<linkman id="1">
  <name>小蔡</name> ...
</linkman>
<linkman id="2">
  <name>小李</name> ...  <!-- 目標 -->
</linkman>

DOM 解析步驟

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);

關鍵 API 對比

方法返回說明
getElementsByTagNameNodeList遞歸查找所有匹配標籤
item(index)Node按索引取節點,0 基
getTextContent()String獲取節點及所有子孫文本
getNodeValue()String僅獲取當前節點值(元素節點為 null)

常見錯誤

  • 用 getElementsByTagName("linkname") → 標籤名寫錯(應為 linkman)。
  • 未強轉 Element 直接調用元素專有方法。
  • 忘記 trim() 導致換行/空格干擾。

總結

DOM 解析 XML 核心流程:**工廠 → 建構器 → Document → 根元素 → getElementsByTagName → 索引定位 → getTextContent**。掌握節點類型轉換(Node → Element)與索引基數(0 基)即可準確提取任意層級數據。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved