个人技术分享

Java 解析xml文件,获取文件内容。

XML文件

<?xml version="1.0" encoding="utf-8"?>
<root>
    <!-- 不登录也能访问  -->
    <anon>
        <url>/sso/login</url>
        <url>/sso/logout</url>
        <url>/webjars/**</url>
        <url>/swagger/**</url>
        <url>/v2/api-docs</url>
        <url>/doc.html</url>
        <url>/swagger-ui.html</url>
        <url>/swagger-resources/**</url>
        <url>/swagger-resources</url>
    </anon>
</root>

Java文件

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

    /**
     * 获取匿名访问地址列表
     * @return
     */
    public Set<String> getAnonUrls()
    {
        Set<String> anonUrlSet = new HashSet<>();
        String currentDirectory = System.getProperty("user.dir");
        try
        {
            // 尝试读取authConfig.xml文件,解析其中的匿名URL信息。
            File file = new File(currentDirectory + File.separator + "config" + File.separator + "authConfig.xml");

            // 解析XML文件
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document doc = builder.parse(file);
            Element root = doc.getDocumentElement();
            // 从根元素中检索标签名称为“anon”的元素列表。
            NodeList nodeList = root.getElementsByTagName("anon");

            for (int i = 0; i < nodeList.getLength(); i++)
            {
                Element anon = (Element) nodeList.item(i);
                NodeList list = anon.getElementsByTagName("url");
                for (int j = 0; j < list.getLength(); j++)
                {
                    anonUrlSet.add(list.item(j).getTextContent());
                }
            }
        } catch (Exception e)
        {
            e.printStackTrace();
        }
        return anonUrlSet;
    }