java - Jsoup:用文本更改标签然后保存在 Java 中

标签 java html jsoup

我有一个 html 文件:

<html ><head></head> <body> <dtag> <div>TEST</div> </dtag> </body></html>

我想替换整个<dtag> , 在其中包含内容,文本为“adc” 并保存。我正在使用这个功能:

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 文件中。

最佳答案

如果您使用的 PHP 版本早于 7.0.0 , 你可以使用这个 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>

引用资料:

关于java - Jsoup:用文本更改标签然后保存在 Java 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36968948/

相关文章:

javascript - 是否有任何特殊的 jQuery 可以为一个元素执行两组不同的代码?

html - 如何从具有相同 DOM 结构的多个产品图 block 中打开多个模式?

java - JSoup 未显示所有数据

java - Jsoup 不同的结果 Windows 和 Linux

java - 如何用 Java 解析 .eml 文件

java - 当该字符串中有空格时,是否可以按字符串获取枚举?

html - 在 div 底部获取页脚

java - JSoup 与祖先子运算符一起执行选择的问题

java - 使用 jUnit 和 Mockito 对外部 REST API 调用进行单元测试

java - GSON:如何从 Json 获取不区分大小写的元素?