有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java解析内部<p>标记

我需要解析xml内容,并需要在

<p><span>test</span></p> <p><span>test12</span></p>  <p>Some text<p><span>test</span></p></p>

在我上面的测试中,最后一个p标签内部有内部p标签。我需要找到p标签的内部p标签。我试了如下

public static void main(String[] args) {
  String  text= "<p><span>test</span></p> <p><span>test12</span></p>  <p>Some text<p><span>test</span></p></p>";
  Pattern pattern = Pattern.compile("<p>.*?</p>");
  Matcher matcher = pattern.matcher(text);
  while (matcher.find()) {
    String match = matcher.group();
    //System.out.println("matcher group:"+match);
    if (match.lastIndexOf("<p>") > 0) {
            //System.out.println("Substring:"+match.substring(match.indexOf("<p>") + "<p>".length(), match.indexOf("</p>")));
            text = text.replace(match, "<p>" +match.substring(match.indexOf("<p>") + "<p>".length(), match.indexOf("</p>")).replaceAll("<p>", ""));
        }
    }
 System.out.println("text:"+text);
}

如果有任何简单的方法,请告诉我


共 (1) 个答案

  1. # 1 楼答案

    看看JAXB

    正如其他人所建议的,不要手动执行此操作,而是使用像JAXB这样的现有库

    一个易于理解的JAXB hello world示例可以在here中找到