将子节点作为java中的父节点

时间:2015-04-09 14:50:00

标签: java xml

我需要通过删除其父节点来保留子节点。
有可能吗?

示例:

<?xml version="1.0" encoding="UTF-8"?>
<School>
  <SSLC>
    <name></name>
    <rollno></rollno>
  </SSLC>
  <PUC>
    <first_pu>
      <name></name>
      <rollno></rollno>
    </first_pu>
    <second_pu>
      <name></name>
      <rollno></rollno>
    </second_pu>
  </PUC>
</School>

我需要删除<PUC>节点。我尝试了以下代码:

String lineToRemove = "<PUC>";
String currentLine;

while ((currentLine = reader.readLine()) != null)
{
    String trimmedLine = currentLine.trim();
    if (trimmedLine.equals(lineToRemove)) continue;
    writer.write(currentLine + System.getProperty("line.separator"));
}

但它不起作用。

1 个答案:

答案 0 :(得分:-1)

我认为你误解了我的建议。 replaceAll(regex,replacement)会在"<PUC>""</PUC>"的所有匹配项中删除(在本例中)您的行,因此检查if(trimmedLine.equals(lineToRemove))它将始终为false是没有意义的。根据您的代码:

String lineToRemove = "<PUC>";
String currentLine;

while ((currentLine = reader.readLine()) != null)
{
    String trimmedLine = currentLine.trim().replaceAll("<PUC>", "").replaceAll("</PUC>", "");
    if(trimmedLine.isEmpty()) continue;
    writer.write(currentLine + System.getProperty("line.separator"));
}

同样,这不是优雅根本,有数千种方法可以做得更好,但我在工作,所以我有点忙,不能花太多时间: P.希望这有帮助,问候。