Java JDOM Element detach() 方法



Java JDOM detach() 方法从 Element 类中分离元素,并返回分离的元素。当此方法与根元素一起使用时,将移除整个 XML 内容,因为所有元素都应包含在根元素内。

语法

以下是 Java JDOM Element detach() 方法的语法 −

Element.detach();

参数

Java detach() 方法不接受任何参数。

返回值

Java detach() 方法返回分离的 Element。

示例

以下是我们需要解析的 sample.xml 文件 −

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <child>I'm the child</child>
</root>

以下基本示例使用 Java JDOM Element detach() 方法来移除子元素。

import java.io.File;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

public class detachElement {
   public static void main(String args[]) {
      try {	
    	 //Reading the document
    	 SAXBuilder saxBuilder = new SAXBuilder();
    	 File inputFile = new File("sample.xml");
    	 Document doc = saxBuilder.build(inputFile);
    	 Element root = doc.getRootElement();
    	 Element child = root.getChild("child");
	     //detach child element
	     child.detach();
	     //Print the document
	     XMLOutputter xmlOutput = new XMLOutputter();
	     xmlOutput.setFormat(Format.getPrettyFormat());
	     xmlOutput.output(doc, System.out);       
      } catch (Exception e) {
    	 e.printStackTrace();
      }
   }
}

移除根元素后的文档将被显示。

<?xml version="1.0" encoding="UTF-8"?>
<root />

示例 2

当 detach() 方法与根元素一起使用时,会移除根元素中包含的全部内容。只有根元素之外的注释、DocType 声明和处理指令仍然保留。

import java.io.File;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

public class detachRootElement {
   public static void main(String args[]) {
      try {	
    	 //Reading the document
    	 SAXBuilder saxBuilder = new SAXBuilder();
    	 File inputFile = new File("sample.xml");
    	 Document doc = saxBuilder.build(inputFile);
    	 Element root = doc.getRootElement();
	     //detach root
	     root.detach();
	     //Print the document
	     XMLOutputter xmlOutput = new XMLOutputter();
	     xmlOutput.setFormat(Format.getPrettyFormat());
	     xmlOutput.output(doc, System.out);       
      } catch (Exception e) {
    	 e.printStackTrace();
      }
   }
}

仅显示文档中保留的处理指令。

<?xml version="1.0" encoding="UTF-8"?>
广告
© . All rights reserved.