123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package io.nexilis.util;
- import org.w3c.dom.Document;
- import org.w3c.dom.Element;
- import org.w3c.dom.NodeList;
- import org.xml.sax.SAXException;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.ParserConfigurationException;
- import java.io.IOException;
- import java.io.InputStream;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- public class XmlParser {
- public static void main(String[] args) {
- try {
- Path file = Paths.get("./libs/AndroidManifest.xml");
- System.out.println(getMainActivity(Files.newInputStream(file.toFile().toPath())));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static String getMainActivity(InputStream inputStream) throws ParserConfigurationException, IOException, SAXException {
- DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
- DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
- Document doc = dBuilder.parse(inputStream);
- doc.getDocumentElement().normalize();
- NodeList activity = doc.getElementsByTagName("activity");
- String main = "";
- p:
- for (int i = 0; i < activity.getLength(); i++) {
- Element element = (Element) activity.item(i);
- NodeList intent = element.getElementsByTagName("intent-filter");
- for (int j = 0; j < intent.getLength(); j++) {
- Element element1 = (Element) intent.item(j);
- NodeList action = element1.getElementsByTagName("action");
- for (int k = 0; k < action.getLength(); k++) {
- Element element2 = (Element) action.item(k);
- if (element2.getAttribute("android:name").equals("android.intent.action.MAIN")) {
- main = element.getAttribute("android:name");
- break p;
- }
- }
- }
- }
- String[] tmp = main.split("\\.");
- return tmp[tmp.length - 1];
- }
- }
|