[英]How to insert values in a particular html tag using jsoup in Java?
我已经使用Watcher API编写了一个Java程序,该程序检查文件夹,每创建一个文件,它就会在html标记中添加一个特定的值。
这是我的WATCHER API 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());
}
}
}
这是我的HTMLParser.java
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();
}
它在此标记后附加文件名:
<td valign="middle"><select name="site">
<option value="collection">collection</option>
假设如果我的文件名为default_collection.xml,我的Java程序会提取xml文件的名称default_collection并将其添加到我的html文件中:
<td valign="middle"><select name="site">
<option value="default_collection">default_collection</option>
但是我的Java程序不是一次添加它,而是两次添加了集合:
<td valign="middle"><select name="site">
<option value="default_collection">default_collection</option>
<option value="default_collection">default_collection</option>
我不确定是什么问题。 任何帮助,将不胜感激。
您应该改用prepend
,这更适合您的情况
将提供的HTML添加到每个匹配元素的内部HTML的开头。
代码如下:
doc.select("select")
.prepend("<option value=" + collection + ">" + collection + "</option");
您还应该在CSS选择器中尝试尽可能地准确,以防止意外匹配。 例如,在这里您的选择器可以是table tr td select
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.