我有一个html文件:
<html ><head></head> <body> <dtag> <div>TEST</div> </dtag> </body></html>
我想替换整个<dtag>
,在其中包含内容,通过文字包含&#34; adc&#34;
并保存。我正在使用这个功能:
private void editHTML() {
StringBuilder sb = new StringBuilder();
BufferedReader br = new BufferedReader(new FileReader(strIndexPath));
String strLine;
while ((strLine = br.readLine()) != null) {
sb.append(strLine);
}
Document doc = Jsoup.parse(sb.toString());
// Document doc=Jsoup.parse(strIndexPath,"UTF-8");
String tagName = "dtag";
Elements dTags = doc.select(tagName);
if (dTags != null)
messager.show(dTags.toString());
String strPhp = "<?php $this->DoIt();?>";
for (Element dTag : dTags)
dTag.text(strPhp);
messager.show(dTags.toString());
}
我知道我做到了。但我不知道如何将其保存到我的html文件中。
答案 0 :(得分:1)
如果您使用的是早于7.0.0
的PHP版本,则可以使用此php开始标记<script language=php>
代替<?php
。
这个不同的php开始标记会让Jsoup开心:
String s = "<html><head></head> <body> <dtag> <div>TEST</div> </dtag> </body></html>";
Document doc = Jsoup.parse(s, "", Parser.xmlParser());
System.out.println("BEFORE:\n" + doc.html());
Elements dTags = doc.select("dtag");
for (Element dTag : dTags) {
dTag.after("<script language=php>$this->DoIt();</script>");
dTag.remove();
}
System.out.println("\n\nAFTER:\n" + doc.html());
BEFORE:
<html>
<head></head>
<body>
<dtag>
<div>
TEST
</div>
</dtag>
</body>
</html>
AFTER:
<html>
<head></head>
<body>
<script language="php">$this->DoIt();</script>
</body>
</html>
参考文献: