首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 使用 JDOM 解析 XML 實戰:Struts 配置文件遍歷示例

     編輯:Java 相關知識

JDOM 核心類

  • SAXBuilder:構建 Document 對象
  • Document:文檔根節點
  • Element:元素節點,提供 getChildren()、getAttributeValue()

示例 XML (mystruts.xml)



  
    
    
  
  
    
    
  

解析代碼

public class JdomReadXml {
    public static void main(String[] args) {
        SAXBuilder sax = new SAXBuilder();
        try {
            Document doc = sax.build(new File("mystruts.xml"));
            Element root = doc.getRootElement();
            List actions = root.getChildren("action");
            for (Element action : actions) {
                System.out.println(action.getAttributeValue("path"));
                System.out.println(action.getAttributeValue("class"));
                List forwards = action.getChildren("forward");
                for (Element forward : forwards) {
                    System.out.println(forward.getAttributeValue("name"));
                    System.out.println(forward.getAttributeValue("url"));
                }
            }
        } catch (JDOMException | IOException e) { e.printStackTrace(); }
    }
}

輸出結果

/test
com.demo.LoginAction
success
test.jsp
failure
failure.jsp
/user
com.demo.UserAction
success
test.jsp
failure
failure.jsp

JDOM vs DOM vs SAX

解析器模型內存速度易用性
DOM樹模型高中高
SAX事件流低快低
JDOM樹模型中中最高(Java 原生 API)

常用操作速查

  • 獲取屬性:element.getAttributeValue("name")
  • 獲取子元素:element.getChildren("tag") 或 element.getChild("tag")
  • 獲取文本:element.getText() / element.getTextTrim()
  • 創建元素:new Element("tag")
  • 輸出 XML:XMLOutputter.output(doc, outputStream)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved