Краткое резюме работы.У меня была папка с файлами XML.Я распаковал его, отправьте в другую папку назначения.Для всех XML-файлов в папке.Мне нужно было получить имя файла, xpath, значение конкретного элемента.Я сделал все это.
Что мне нужно сделать, это получить доступ к определенному столбцу в файле CSV (столбец метки), проверить, если какая-либо ячейка пуста, если она пуста, я не хочу писатьвся строка вообще в файле csv.Надеюсь, я достаточно ясно Это отличная / Java работа
public void getAllFiles(String fileName) {
//create csv file in a variable and hold all files in a single variable as well
def xmlFile = new XmlSlurper().parse(new File(fileName))
def csvFile = new File("C:\\Users\\username\\Desktop\\test1.csv")
def labels = xmlFile.breadthFirst().findAll {
if (it.name() == 'element1') {
println it
println it.attributes().get("attribute")
println getXPath(it)
def langs = it.attributes().get("attribute")
def description = it.parent().parent().children().find { node -> node.name() == 'message' }.text().toString()
def xmlFile2 = new File(fileName)
csvFile.append('"' + xmlFile2.getName() + '"' + "," + '"' + getXPath(it) + '"' + "," + '"' + description + '"' + "," + '"' + langs + '"' + "," + '"' + it + '"' + "\r\n")
}
}
}
def list = []
def ant = new AntBuilder()
ant.unzip(src: "zipfolderpath.zip", dest: "path_to_folder",
overwrite: "false")
def dir = new File("Path_to_folder")
def csvFile = new File("C:\\Users\\username\\Desktop\\test1.csv")
def valueA = "XPATH"
def valueE = "FILENAME"
def valueD = "DESCRIPTION"
def valueB = "LANGUAGE"
def valueC = "LABELS"
csvFile.write("\r\n" + valueE + "," + valueA + "," + valueD + "," + valueB + "," + valueC + "\r\n")
dir.eachFileRecurse(FileType.FILES) { file ->
if (file.getName().endsWith("xml")) {
extractFileName(file.absolutePath)
}
}