這裏是我的問題。我需要在jsp文件的某個字符串中包含一些HTML頁面(模板)的內容,所以我可以迭代拋出它,解析它,然後使用我需要的東西。怎麼能做到這一點,我試圖在網上找到解決方案,但我不能。有誰知道解決方案可能是什麼?在JSP中包含HTML頁面的內容爲String
感謝,
盧卡
這裏是我的問題。我需要在jsp文件的某個字符串中包含一些HTML頁面(模板)的內容,所以我可以迭代拋出它,解析它,然後使用我需要的東西。怎麼能做到這一點,我試圖在網上找到解決方案,但我不能。有誰知道解決方案可能是什麼?在JSP中包含HTML頁面的內容爲String
感謝,
盧卡
如果您想從網絡讀取HTML網頁並解析它來抓取數據的某些部分,然後將下面的代碼可能會對你有所幫助(快捷骯髒的代碼我在以前的項目中使用)
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.NodeList;
import org.w3c.tidy.Tidy;
public List<String> getTopics() {
try {
URL url = new URL(TOPIC_URL);
URLConnection urlc = url.openConnection();
java.io.InputStream is = urlc.getInputStream();
Tidy tidy = new Tidy();
tidy.setDocType("HTML 4.01 Transitional");
tidy.setQuiet(true);
org.w3c.dom.Document doc = tidy.parseDOM(is, null);
XPathFactory factory=XPathFactory.newInstance();
XPath xPath=factory.newXPath();
XPathExpression xPathExpression= xPath.compile("//td[@class='topics']//table[@class='topic']/tr/td/a/text()");
NodeList nodes = (NodeList) xPathExpression.evaluate(doc, XPathConstants.NODESET);
logger.debug("Found " + nodes.getLength() + " nodes");
List<String> result = new ArrayList<String>();
for (int i=0; i<nodes.getLength();i++){
result.add(nodes.item(i).getNodeValue());
}
logger.debug("Topics: " + result);
return result;
} catch(MalformedURLException ex) {
logger.info(ex.getClass() + ":" + ex.getMessage());
throw new RuntimeException(ex);
} catch(XPathExpressionException ex) {
logger.info(ex.getClass() + ":" + ex.getMessage());
throw new RuntimeException(ex);
} catch(IOException ex) {
logger.info(ex.getClass() + ":" + ex.getMessage());
throw new RuntimeException(ex);
}
}
顯然,這是值得注意的:
我不知道如何理解你的問題,但你可以包括一個模板我們包含標記
<jsp:include page="template.html">
當JSP頁面被編譯並使其成爲頁面的一部分時,這將讀取html文件。
是的,我知道,但止跌」噸做到這一點,因爲要提取每個標籤... – Luka
你的問題是非常不清楚的。你的目標是什麼? –
我知道他打算做什麼:他可能希望以字符串形式讀取html文件,然後進行一些字符串操作,然後out.print操縱結果。 –
如果文件,您嘗試讀取是本地文件,那麼我建議嘗試Files.toString()從Google Guava library:
Charset charset = Charset.forName("UTF-8");
File file = new File("test.txt");
String res = Files.toString(file, charset);
謝謝,也許這樣做,我會嘗試,我只是專注於JSP和包括指令,同時忘記基本知識:) – Luka
我做了這個工作: – Luka
我做了這個工作: <% String file = application.getRealPath(「/」)+「test.txt」; File fileObject = new File(file); char data [] = new char [(int)fileObject.length()]; FileReader filereader = new FileReader(file); int charsread = filereader.read(data); (new String(data,0,charsread)); filereader.close(); %> 它工作得很好,不過謝謝你們;) – Luka
謝謝,但我需要從本地文件 – Luka