✔ 最佳答案
我想問一問,你在 java program 裡面是怎樣把 html 內容更新到 database?如果你是好像下面一樣用一條 String 慢慢 append 上去 (假設你的 html 內容儲存在 html 的variable 內):
String sql = ”insert into table_name (key, value) values (” + key + ”, '” + html + "')”;
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet rs = statement.executeQuery();
那樣當你 html 裡有 double quote (”) 就會令你的 sql statement 不能執行。
你可以嘗試用 prepareStatement 的 set methods。好像上面一樣,你可以這樣寫:
String sql = ”insert into table_name (key, value) values (?, ?)”;
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, key);
statement.setString(2, html);
ResultSet rs = statement.executeQuery();
用 setString method 的話 java 就會幫你處理 double quote 的問題。(其實不止 setString, 還有 setInt、setLong、setDouble 等 method,視乎你的 data type)。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
「另外, 有沒有可以只從html讀取內容部份,(沒有 的情況下)」不太明白你的意思,可能是你的問題有一些 tag 顯示不到?不過我想可能你想問可不可以只是讀取某部份的 html 而不是整個 html 下載下來,如果是這樣的。是不能的,因為 html 只是 web server 對於你的 request 的一個回應。你可以做的只可以是讀取整個 html 之後再搜尋你想要的部份。
例如你只想讀取 <body> 和 </body> 的部份,你都要整個 html 讀取下來,再用 String.indexOf method 去搜尋,再取出你想要的部份。例子 (假設你 html 的 variable 有你的 html 內容):
int startIndex = html.indexOf(”<body>”);
int endIndex = html.lastIndexOf(”</body>”)+8;
String bodyHtml = html.substring(startIndex, endIndex);
那麼 bodyHtml 就會有你想要的部份。
請注意:上面的 code 為避免出現亂碼 < > 及 ”均用了全型顯示。如果你要 copy-and-paste 出來使用,請自行轉回半型。
希望幫到你。