All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tinygroup.xmlparser.document.XmlDocumentImpl Maven / Gradle / Ivy

There is a newer version: 3.4.9
Show newest version
/**
 * Copyright (c) 2012-2016, www.tinygroup.org ([email protected]).
 * 

* Licensed under the GPL, Version 3.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.gnu.org/licenses/gpl.html *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.tinygroup.xmlparser.document; import org.tinygroup.xmlparser.XmlDocument; import org.tinygroup.xmlparser.node.XmlNode; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; public class XmlDocumentImpl implements XmlDocument { private XmlNode root = null; private XmlNode xmlDeclaration = null; private List commentList = null; private List doctypeList = null; private List processingInstructionList = null; /** * 获取根结点 s * * @return XmlNode */ public XmlNode getRoot() { return root; } /** * 设置根结点 * * @param root * @return void */ public void setRoot(XmlNode root) { this.root = root; } /** * 获取XML声明 * * @return XmlNode */ public XmlNode getXmlDeclaration() { return xmlDeclaration; } /** * 设置XML声明 * * @param xmlDeclaration * @return void */ public void setXmlDeclaration(XmlNode xmlDeclaration) { this.xmlDeclaration = xmlDeclaration; } /** * 获取Xml注释 * * @return List */ public List getCommentList() { return commentList; } /** * 获取CDATA部分 * * @return List */ public List getDoctypeList() { return doctypeList; } /** * 获取XML处理指令 * * @return List */ public List getProcessingInstructionList() { return processingInstructionList; } /** * 添加CDATA文本 * * @param CDATA文本 * @return void */ public void addDoctype(XmlNode node) { if (doctypeList == null) { doctypeList = new ArrayList(); } doctypeList.add(node); } /** * 添加XML处理指令 * * @param processingInstruction * @return void */ public void addProcessingInstruction(XmlNode node) { if (processingInstructionList == null) { processingInstructionList = new ArrayList(); } processingInstructionList.add(node); } /** * 添加注释 * * @param comment * @return void */ public void addComment(XmlNode node) { if (commentList == null) { commentList = new ArrayList(); } commentList.add(node); } /** * 获取完整XML文档 * * @return String */ public String toString() { StringBuffer sb = new StringBuffer(); if (xmlDeclaration != null) { sb.append(this.xmlDeclaration.toStringBuffer()); } if (this.commentList != null) { for (XmlNode n : commentList) { sb.append(n.toStringBuffer()); } } if (this.doctypeList != null) { for (XmlNode n : doctypeList) { sb.append(n.toStringBuffer()); } } if (this.processingInstructionList != null) { for (XmlNode n : processingInstructionList) { sb.append(n.toStringBuffer()); } } sb.append(root.toStringBuffer()); return sb.toString(); } /** * 将XML文档写入指定的输出流中 * * @param out * @return void */ public void write(OutputStream out) throws IOException { if (xmlDeclaration != null) { xmlDeclaration.write(out); } if (this.commentList != null) { for (XmlNode n : commentList) { n.write(out); } } if (this.doctypeList != null) { for (XmlNode n : doctypeList) { n.write(out); } } if (this.processingInstructionList != null) { for (XmlNode n : processingInstructionList) { n.write(out); } } root.write(out); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy