0

我尝试编写一个递归函数,它使我可以在仅“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 等等。

提前致谢 !

4

0 回答 0