Java JDOM Document getDocType() 方法



Java JDOM 的getDocType()方法,属于Document类,用于以JDOM DocType 对象的形式获取XML文档的DocType声明。有些XML文档可能没有DocType声明语句;在这种情况下,它返回null。

要从此方法返回的DocType对象中获取更多信息,DocType类中提供了一些方法,例如getElementName()、getSystemID()、getPublicID()等。

语法

以下是Java JDOM Document getDocType()方法的语法:

Document.getDocType();

参数

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

返回值

Java getDocType()方法以JDOM DocType对象的形式返回DocType定义。

示例 1

这是一个包含DocType声明语句的hospital.xml文件。我们将使用Java JDOM Document getDocType()方法来获取DocType声明。

<!DOCTYPE hospital[
<!ELEMENT hospital (doctor+)>
<!ELEMENT doctor (#PCDATA)>
]>
<hospital>
   <doctor>Dr.Rajesh Sharma</doctor>
   <doctor>Dr.Priya Gowtham</doctor>
   <doctor>Dr.Manoj Varma</doctor>
</hospital>

以下基本的Java程序使用getDocType()方法从上面提到的hospital.xml文件中检索DocType声明。

import java.io.File;
import org.jdom2.DocType;
import org.jdom2.Document;
import org.jdom2.input.SAXBuilder;

public class GetDocType {
   public static void main(String args[]) {
      try {	
    	 //Reading the document
 		 SAXBuilder saxBuilder = new SAXBuilder();
 		 File inputFile = new File("hospital.xml");
 		 Document doc = saxBuilder.build(inputFile);		 
 		 //Get DocType
	     DocType docType = doc.getDocType();
	     System.out.println(docType);
      } catch (Exception e) {
    	 e.printStackTrace();
      }
   }
}

输出窗口显示DTD声明。

[DocType: <!DOCTYPE hospital>]

示例 2

DocType类的getElementName()方法检索定义DTD约束的元素的名称。getSystemID()和getPublicID()分别返回XML文档的系统ID和公共ID。

import java.io.File;
import org.jdom2.DocType;
import org.jdom2.Document;
import org.jdom2.input.SAXBuilder;

public class GetDocType {
   public static void main(String args[]) {
      try {	
    	 //Reading the document
 		 SAXBuilder saxBuilder = new SAXBuilder();
 		 File inputFile = new File("hospital.xml");
 		 Document doc = saxBuilder.build(inputFile);		 
 		 //Get DocType Element
	     DocType docType = doc.getDocType();
	     System.out.println("DocType Element name: "+docType.getElementName());
	     System.out.println("System ID: "+docType.getSystemID());
	     System.out.println("Public ID: "+docType.getPublicID());
      } catch (Exception e) {
    	 e.printStackTrace();
      }
   }
}

输出窗口显示DocType元素名称、系统ID和公共ID。

DocType Element name: hospital
System ID: null
Public ID: null

示例 3

如果XML文档中没有DocType定义,则getDocType()方法返回null。

import org.jdom2.DocType;
import org.jdom2.Document;
import org.jdom2.Element;

public class GetDocType {
   public static void main(String args[]) {
      try {	
    	 //Creating a new Document and adding the root
	     Document doc = new Document();
	     Element element = new Element("hospital");
	     doc.addContent(element);
	     //Get the DocType
	     DocType docType = doc.getDocType();
	     System.out.println(docType);
      } catch (Exception e) {
    	 e.printStackTrace();
      }
   }
}

输出窗口显示DocType为null。

null
广告