- Java XML 教程
- Java XML 首页
- Java XML 概述
- Java XML 解析器
- Java DOM 解析器
- Java DOM 解析器
- 解析 XML 文档
- 查询 XML 文档
- 创建 XML 文档
- 修改 XML 文档
- Java SAX 解析器
- Java SAX 解析器
- 解析 XML 文档
- 查询 XML 文档
- 创建 XML 文档
- 修改 XML 文档
- JDOM XML 解析器
- JDOM XML 解析器
- 解析 XML 文档
- 查询 XML 文档
- 创建 XML 文档
- 修改 XML 文档
- Java StAX 解析器
- Java StAX 解析器
- 解析 XML 文档
- 查询 XML 文档
- 创建 XML 文档
- 修改 XML 文档
- Java XPath 解析器
- Java XPath 解析器
- 解析 XML 文档
- 查询 XML 文档
- 创建 XML 文档
- 修改 XML 文档
- Java DOM4J 解析器
- Java DOM4J 解析器
- 解析 XML 文档
- 查询 XML 文档
- 创建 XML 文档
- 修改 XML 文档
- Java XML 有用资源
- Java XML - 问题与解答
- Java XML - 快速指南
- Java XML - 有用资源
- Java XML - 讨论
Java JDOM Document setContent() 方法
Java JDOM 的 setContent() 方法是 Document 类的方法,用于替换 XML 文档中的文档级内容对象。内容对象包括 DocType 定义、注释、处理指令和根元素。
当我们尝试在文档中错误的索引处替换内容对象时,setContent() 方法会抛出 indexOutOfBoundsException 异常。
语法
以下是 Java JDOM Document setContent() 方法的语法:
Document.setContent(child) Document.setContent(index, child) Document.setContent(list) Document.setContent(index, list)
参数
Java setContent() 方法是一个多态方法,每个方法都有不同的参数。
child - 表示一个 Content 对象。可以是 Element、Comment、DocType、EntityRef、ProcessingInstruction 和 Text。
index - 表示我们需要插入 Content 或 Content 对象列表的索引。
list - 表示 Content 对象的列表。
返回值
此方法返回替换内容的 Document 对象。
示例 1
Java JDOM Document setContent() 方法用作为参数传递的新根元素替换现有的根元素。
import org.jdom2.Document;
import org.jdom2.Element;
public class setNewRoot {
public static void main(String args[]) {
try {
//Creating new document and adding root
Document doc = new Document();
Element root = new Element("root");
doc.addContent(root);
//Replacing the root
Element new_root = new Element("new_root");
doc.setContent(new_root);
System.out.println(doc);
} catch(Exception e) {
e.printStackTrace();
}
}
}
显示设置新根元素后的更新文档。
[Document: No DOCTYPE declaration, Root is [Element: <new_root/>]]
示例 2
我们需要替换以下 collegeData.xml 文件的注释:
<!-- This is college data.--> <college> <department>Computer Science</department> <department>Electrical and Electronics</department> <department>Mechanical</department> </college>
setContent(index,comment) 方法用作为第二个参数传递的注释替换指定索引处的 content 对象。
import java.io.File;
import org.jdom2.Comment;
import org.jdom2.Document;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
public class ReplaceComment {
public static void main(String args[]) {
try {
//Reading the document
SAXBuilder saxBuilder = new SAXBuilder();
File inputFile = new File("collegeData.xml");
Document doc = saxBuilder.build(inputFile);
//Replacing comment
Comment comment = new Comment("Start of the document");
doc.setContent(0,comment);
//Printing 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"?> <!--Start of the document--> <college> <department>Computer Science</department> <department>Electrical and Electronics</department> <department>Mechanical</department> </college>
示例 3
setContent(index,list) 方法用作为第二个参数提供的 content 列表替换指定索引处的 content 对象。
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.jdom2.Comment;
import org.jdom2.Content;
import org.jdom2.DocType;
import org.jdom2.Document;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
public class SetContentList {
public static void main(String args[]) {
try {
//Reading the document
SAXBuilder saxBuilder = new SAXBuilder();
File inputFile = new File("collegeData.xml");
Document doc = saxBuilder.build(inputFile);
//Adding content list
DocType docType = new DocType("college");
Comment comment = new Comment("Last updated date : 09-08-2024");
List<Content> list = new ArrayList<Content>();
list.add(docType);
list.add(comment);
doc.setContent(0,list);
//Printing the document
XMLOutputter xmlOutput = new XMLOutputter();
xmlOutput.setFormat(Format.getPrettyFormat());
xmlOutput.output(doc, System.out);
} catch(Exception e) {
e.printStackTrace();
}
}
}
显示在索引 0 处添加 content 列表后的更新文档。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE college> <!--Last updated date : 09-08-2024--> <college> <department>Computer Science</department> <department>Electrical and Electronics</department> <department>Mechanical</department> </college>
广告