Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import javax.xml.parsers.ParserConfigurationException;
- import javax.xml.xpath.XPath;
- import javax.xml.xpath.XPathConstants;
- import javax.xml.xpath.XPathExpressionException;
- import javax.xml.xpath.XPathFactory;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.HashMap;
- import org.w3c.dom.Document;
- import org.w3c.dom.NodeList;
- import org.xml.sax.SAXException;
- public class ParseAspect {
- public static void main(String[] args) {
- HashMap<Integer, String> myFuncMap = new HashMap<Integer, String>();
- StringBuilder funcresultnew = new StringBuilder();
- File[] listOfFiles = new File(args[0]).listFiles();
- int funcCounter;
- try (BufferedReader br = new BufferedReader(new FileReader(args[1]));
- FileWriter fw = new FileWriter(new File(args[2]));) {
- String line = br.readLine();
- funcCounter = 0;
- while (line != null) {
- myFuncMap.put(funcCounter, line);
- line = br.readLine();
- funcCounter++;
- }
- for (int i = 0; i < listOfFiles.length; i++) {
- System.out.println(listOfFiles[i].getPath());
- funcresultnew.append(parseScript(listOfFiles[i].getPath(), myFuncMap));
- }
- fw.write(funcresultnew.toString());
- for (int i = 0; i < myFuncMap.size(); i++) {
- if (!funcresultnew.toString().toLowerCase()
- .contains(myFuncMap.get(i).toLowerCase())) {
- fw.write(System.lineSeparator());
- fw.write(myFuncMap.get(i).toLowerCase());
- }
- }
- } catch (IOException e) {
- System.out.println(e.getMessage());
- }
- }
- public static String parseScript(String filename,
- HashMap<Integer, String> myFuncMapfrom) {
- int funcCounter = 0;
- DocumentBuilderFactory builderFactory = DocumentBuilderFactory
- .newInstance();
- DocumentBuilder builder;
- StringBuilder funcresult = new StringBuilder();
- StringBuilder funcstrings = new StringBuilder();
- XPath xPath = XPathFactory.newInstance().newXPath();
- HashMap<Integer, String> myFuncMapto = new HashMap<Integer, String>(
- myFuncMapfrom);
- Document xmlDocument = null;
- try (FileInputStream file = new FileInputStream(new File(filename))) {
- builder = builderFactory.newDocumentBuilder();
- xmlDocument = builder.parse(file);
- String expression = "/m3project/documents/document/nodes/node"
- + "[@type='12']/property[name='SQLStatement']/actualvalue/objectinstance/member"
- + "/value[text()]";
- NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(
- xmlDocument, XPathConstants.NODESET);
- for (int x = 0; x < nodeList.getLength(); x++) {
- for (int i = 0; i < myFuncMapto.size(); i++) {
- if (nodeList.item(x).getFirstChild().getNodeValue()
- .toLowerCase()
- .contains(myFuncMapto.get(i).toLowerCase())) {
- funcCounter++;
- funcstrings.append(nodeList.item(x).getFirstChild()
- .getNodeValue());
- funcstrings.append(System.lineSeparator());
- }
- }
- }
- } catch (SAXException | ParserConfigurationException
- | XPathExpressionException | IOException ex) {
- System.out.println(ex.getMessage());
- }
- if (funcCounter > 0) {
- funcresult.append(System.lineSeparator());
- funcresult.append("*****************FileName***************");
- funcresult.append(System.lineSeparator());
- funcresult.append(filename);
- funcresult.append(System.lineSeparator());
- funcresult.append(funcstrings.toString());
- funcresult.append(System.lineSeparator());
- funcresult.append("Count: " + funcCounter);
- }
- return funcresult.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement