폴더를 확인하는 Watcher API를 사용하여 Java 프로그램을 코딩했으며 파일이 생성 될 때마다 html 태그에 특정 값을 추가합니다.Java에서 jsoup를 사용하여 특정 html 태그에 값을 삽입하는 방법은 무엇입니까?
이 내 WATCHER API 자바 클래스입니다 :
<td valign="middle"><select name="site">
<option value="collection">collection</option>
: 이것은이 태그에 파일의 이름을 추가한다
public void HTMLtag(String fileName) throws IOException {
File file = new File("firstpage.html");
Document doc = Jsoup.parse(file, "UTF-8");
fileName = fileName.substring(0, fileName.length() - 4);
String collection = fileName;
doc.select("select").first().children().first()
.before("<option value=" + collection + ">" + collection + "</option");
PrintWriter writer = new PrintWriter("firstpage.html");
writer.write(doc.toString());
writer.close();
}
내 HTMLParser.java입니다
package com.searchtechnologies;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
import java.util.List;
public class WatcherAPI {
public static void main(String args[]) {
Path myDir = Paths.get("C:/Apps/CollectionOfXMLFiles");
try {
WatchService watcher = myDir.getFileSystem().newWatchService();
myDir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE);
WatchKey watckKey = watcher.take();
List<WatchEvent<?>> events = watckKey.pollEvents();
for (WatchEvent event : events) {
if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
String fileName = "" + event.context();
HtmlParser htmlParser = new HtmlParser();
htmlParser.HTMLtag(fileName);
}
}
}
catch (Exception e) {
System.out.println("Error: " + e.toString());
}
}
}
내 파일의 이름이 default_collection.xml이라면, my java 프로그램은 default_collecti 인 xml 파일의 이름을 추출합니다. 에 내 html 파일이 추가됩니다
<td valign="middle"><select name="site">
<option value="default_collection">default_collection</option>
을하지만 대신 한 번, 내 자바 프로그램을 두 번 컬렉션을 추가하고 추가하는 :
<td valign="middle"><select name="site">
<option value="default_collection">default_collection</option>
<option value="default_collection">default_collection</option>
나는 문제가 무엇인지 모르겠습니다. 어떤 도움을 주시면 감사하겠습니다. 대신 prepend
를 사용해야합니다
일 수 있습니다. Nicolas 님, 솔루션을 사용해 보았습니다. 세 번을 추가합니다. Watcher API와 관련이 있습니까? – Rose
어쩌면 그것은 내 측면에서 꽤 잘 작동하기 때문에 동일한 파일에 대해 여러 번 실행하기 때문일 수 있습니다. –
알았습니다. 고마워. – Rose