我尝试编写一个递归函数,它使我可以在仅“li”html 标记之间使用(添加一些文本)。以下是我可以拥有的所有案例:
Test 1 Test 1 Test 1 Test 1 Test 1 Test 1
<ol>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ol>
Test 2 Test 2 Test 2 Test 2 Test 2 Test 2
<ul>
<li>Coffee dfg dfg dfg </li>
<li>Tea dfg df gdf gfdg </li>
<li>Mifdg dfg fdg lkdf gdf gdf </li>
</ul>
Test 3 Test 3 Test 3 Test 3 Test 3 Test 3
<ol>
<li>
<ol>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ol>
</li>
<li>Tea</li>
<li>Milk</li>
</ol>
Test 4 Test 4 Test 4 Test 4 Test 4 Test 4
<ul>
<li>Coffee dfg dfg dfg </li>
<li>
<ol>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ol>
</li>
<li>Mifdg dfg fdg lkdf gdf gdf </li>
</ul>
我的代码:
public static String isInnerTag(String text){
final StringBuilder olBuilder = new StringBuilder(text);
int beginText = text.indexOf("<ol>");
int endText = olBuilder.indexOf("</ol>");
String innerText = text.substring(beginText + 4, endText);
innerText = innerText.replaceAll("</li>", "");
String [] li = innerText.split("<li>");
StringBuilder sb = new StringBuilder();
for (int i = 1; i < li.length; i++) {
String temp = i + " " + li[i].toString();
sb.append(temp);
}
System.out.println(sb);
return text;
}
输出:
1 咖啡 2 茶 3 牛奶 4 牛奶 5 牛奶 6 牛奶 7 牛奶最后
我想在 li 标签中的文本之前添加,例如。1、2、3 等等,对于第一个 li 1 的内部(测试 4),下一个 li(在下一个 ol 中)1.1、1.2、1.3 等等。
提前致谢 !