Есть класс Main
public class Main extends Application{
//Объявляем переменные для компонентов формы
Button button;
Stage window;
TextArea zurnal;
TextArea last10;
TitledPane titledPaneZurnal;
TitledPane titledPaneLast10;
TextField timerText;
Label l1;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
window = primaryStage;
window.setTitle("TimeCheck");
window.setResizable(false);
button = new Button("Открыть");
zurnal = new TextArea(); //Создаем объект текстового поля для текстового поля с журналом
button.setOnAction(e -> {
try {
XmlParser.xmlMethod();
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch (SAXException e1) {
e1.printStackTrace();
} catch (XPathExpressionException e1) {
e1.printStackTrace();
}
});
l1 = new Label("Журнал добавленных материалов");
last10 = new TextArea(); //Создаем объект текстового поля для последних 10 записей
VBox layout = new VBox(20);
layout.getChildren().addAll(l1, zurnal, last10, button);
Scene scene = new Scene(layout, 700,500);
window.setScene(scene);
window.show();
}
}
И есть класс XmlParser
public class XmlParser {
private static String xmlSource = "http://freerutor.me/rss.xml"; //Ссылка на источник xml
private static String lastFilm ="";
public static Main main = new Main();
static ArrayList<String> searchCopy;
public static void xmlMethod() throws ParserConfigurationException, IOException, SAXException, XPathExpressionException {
// Создаем DOM
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document bbcDoc = builder.parse(xmlSource);
ArrayList<String> search = new ArrayList<String>();
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "/rss/channel/item"; //выражение для поиска
NodeList itemNodes = (NodeList) xpath.evaluate(expression, bbcDoc, XPathConstants.NODESET); //создаем список значений
for (int i = 0; i < itemNodes.getLength(); i++) {
String expression2 = "title"; //Ищем заголовки в списке
Node titleInItemNode = (Node) xpath.evaluate(expression2, itemNodes.item(i), XPathConstants.NODE);
search.add(titleInItemNode.getTextContent()); // Выводим заголовки
}
int position = 0;
boolean flag = false;
// Определяем последний фильм, по которому будет вестись отбор
if (search.get(0).trim() != lastFilm.trim())
{
if (lastFilm != "") // если переменная не пуста, то мы определяем позицию материала, который считался "последним" в прошлой проверке
//и копируем строки с 0 по по ту, на которой находится этот самый материал
{
position = search.indexOf(lastFilm);
lastFilm = search.get(0).trim();
if (position > 0)
{
//searchCopy.clear();
searchCopy = new ArrayList<String>(search.subList(0, position));
search.clear();
}
else
{
searchCopy = new ArrayList<String>(search.subList(0, position + 1));
search.clear();
}
}
else //Если в переменной ничего нет, то мы записываем в нее название последнего добавленного материала на сайт
{
lastFilm = search.get(0).trim();
position = search.indexOf(lastFilm);
searchCopy = new ArrayList<String>(search.subList(0, position + 1));
}
flag = true;
}
}
}
Подскажите, как можно заполнить zurnal
и last10
значениями из search
и searchCopy
соответственно при вызове метода XmlParser.xmlMethod()
?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу 1 полезную программу и нужно делать проверку открыт ли хром и открыта ли в нем определенная вкладка, лучше будет если еще есть возможность...
Как точно узнать, кто использует MySQL базу данных, узнать ip-адреса всех использующих её серверов? Возможно ли это получить эту информацию относительного...
mysqlесть такая задача, не знаю как решить
Рейтинг публикации в DLE вероятно хранится в таблице dle_post_extras поля rating и vote_numvote_num это количество проголосовавших вероятно? Что нужно заносить...