Java JDOM Document getNamespacesInScope() 方法



Java JDOM 的 getNamespacesInScope() 方法是 Document 类的方法,用于获取当前 XML 文档作用域内的所有命名空间。此方法返回 XML 文档在文档级别引入的命名空间和继承的命名空间。

语法

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

Document.getNamespacesInScope();

参数

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

返回值

Java getNamespacesInScope() 方法返回作用域内 Namespace 对象的列表。

示例 1

以下是使用 Java JDOM Document getNamespacesInScope() 方法的基本示例:

import java.util.List;
import org.jdom2.Document;
import org.jdom2.Namespace;

public class NamespacesInScope {
   public static void main(String args[]) {
      try {    	  
    	 //Create a new document
    	 Document doc = new Document();
    	 //Get In-scope Namespaces
		 List<Namespace> ns = doc.getNamespacesInScope();
		 for(Namespace namespace : ns) {
			System.out.println(namespace);
		 }		 
      } catch (Exception e) {
    	 e.printStackTrace();
      }
   }
}

输出窗口显示作用域内的命名空间。

[Namespace: prefix "" is mapped to URI ""]
[Namespace: prefix "xml" is mapped to URI "http://www.w3.org/XML/1998/namespace"]

示例 2

我们需要解析以下 books.xml 文件:

<?xml version="1.0" encoding="UTF-16" ?>
<book xmlns="http://domain/book">
    <pre:name xmlns:pre="http://domain/bookName">
       War and Peace
    </pre:name>
</book>

Document.getNamespacesInScope() 方法仅提供文档级别的命名空间。尽管根元素和子元素具有命名空间,但此方法不会检索它们。

import java.io.File;
import java.util.List;
import org.jdom2.Document;
import org.jdom2.Namespace;
import org.jdom2.input.SAXBuilder;

public class NamespacesInScope {
   public static void main(String args[]) {
      try {    	  
    	 //Reading the XML file
 		 SAXBuilder saxBuilder = new SAXBuilder();
 		 File inputFile = new File("books.xml");			          
 		 Document doc = saxBuilder.build(inputFile);
 		 //Get In-scope Namespaces
		 List<Namespace> ns = doc.getNamespacesInScope();
		 for(Namespace namespace : ns) {
			System.out.println(namespace);
		 }		 
      } catch (Exception e) {
    	 e.printStackTrace();
      }
   }
}

文档级别的命名空间显示在输出屏幕上。

[Namespace: prefix "" is mapped to URI ""]
[Namespace: prefix "xml" is mapped to URI "http://www.w3.org/XML/1998/namespace"]
广告