strings.xml 值去重

91 阅读1分钟
/**
 * strings.xml 值去重
 * @param args
 */
public static void main(String[] args) {
    try {
        // 创建解析器工厂
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        // 创建解析器
        DocumentBuilder db = dbf.newDocumentBuilder();
        // 解析XML文件
        Document doc = db.parse("file:///D:/english/strings.xml");
        // 获取所有的string元素
        NodeList nl = doc.getElementsByTagName("string");
        LinkedHashSet<String> strings = new LinkedHashSet<>();
        for (int i = 0; i < nl.getLength(); i++) {
            Element elt = (Element) nl.item(i);
            strings.add(elt.getTextContent());
        }

        // 创建TransformerFactory对象
        TransformerFactory tff = TransformerFactory.newInstance();
        // 创建Transformer对象
        Transformer tf = tff.newTransformer();
        // 设置编码方式
        tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
        // 创建xml文件并写入内容
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(new File("src/strings2.xml"));
        tf.transform(source, result);

        System.out.println("去重后的字符串数量:" + strings.size());
        createStringsXml(strings);
    } catch (Exception e) {
        e.printStackTrace();
    }
}