JAVA 使用DOM4J解析XML文件

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class DOM4JTest
{
    private static ArrayList phoneInformations = new ArrayList();
    
    public static void main(String[] args)
    {
        SAXReader reader = new SAXReader();
        try
        {
            // 通过read方法加载xml文件,获取document对象
            Document document = reader.read(new File("src/scp_telephone_test/device.xml"));
            // 通过document对象获取根节点
            Element deviceElement = document.getRootElement();
            // 获取手机节点
            List phoneNodes = deviceElement.elements();
            // phoneNodes判空
            for (Element phoneNode : phoneNodes)
            {
                List phoneAttributes = phoneNode.elements();
                for (Element phoneAttribute : phoneAttributes)
                {
                    System.out.println(phoneAttribute.getName() + ":" + phoneAttribute.getStringValue());
                }
            }
        }
        catch(DocumentException e)
        {
            e.printStackTrace();
        }
    }
}


    
        device_id_1
        device_ip_1
        device_number_1
        联通
    
    
        device_id_2
        device_id_2
        device_number_2
        移动
    
    
        device_id_3
        device_ip_3
        device_number_3
        电信
    

到获取属性节点基本上其他地方也都有介绍,这里主要想记录一下,xml文件的格式会影响解析方法是否成功

如上所示,在中,都是以这种格式存在的属性,那么只能以下例代码来获得值。

List phoneAttributes = phoneNode.elements();
for (Element phoneAttribute : phoneAttributes)
{
    System.out.println(phoneAttribute.getName() + ":" + phoneAttribute.getStringValue());
}

如果是这种形式,那么可以利用attribute来获取,如 .attributeValue("id"),总之,如果你想用attribute来进行解析xml文件,那么一定要注意xml文件的格式。

你可能感兴趣的:(JAVA 使用DOM4J解析XML文件)