// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: DOMOutputter.java
package org.jdom.output;
import java.util.Iterator;
import java.util.List;
import org.jdom.Attribute;
import org.jdom.CDATA;
import org.jdom.Comment;
import org.jdom.DocType;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.EntityRef;
import org.jdom.JDOMException;
import org.jdom.Namespace;
import org.jdom.ProcessingInstruction;
import org.jdom.Text;
import org.jdom.adapters.DOMAdapter;
import org.w3c.dom.Attr;
// Referenced classes of package org.jdom.output:
// NamespaceStack
public class DOMOutputter
{
private static final String CVS_ID = "@(#) $RCSfile: DOMOutputter.java,v $ $Revision: 1.33 $ $Date: 2003/04/06 02:00:44 $ $Name: jdom_1_0_b9_rc2 $";
private static final String DEFAULT_ADAPTER_CLASS = "org.jdom.adapters.XercesDOMAdapter";
private String adapterClass;
public DOMOutputter()
{
}
public DOMOutputter(String adapterClass)
{
this.adapterClass = adapterClass;
}
public org.w3c.dom.Document output(Document document)
throws JDOMException
{
NamespaceStack namespaces = new NamespaceStack();
org.w3c.dom.Document domDoc = null;
try
{
DocType dt = document.getDocType();
domDoc = createDOMDocument(dt);
for (Iterator itr = document.getContent().iterator(); itr.hasNext();)
{
Object node = itr.next();
if (node instanceof Element)
{
Element element = (Element)node;
org.w3c.dom.Element domElement = output(element, domDoc, namespaces);
org.w3c.dom.Element root = domDoc.getDocumentElement();
if (root == null)
domDoc.appendChild(domElement);
else
domDoc.replaceChild(domElement, root);
} else
if (node instanceof Comment)
{
Comment comment = (Comment)node;
org.w3c.dom.Comment domComment = domDoc.createComment(comment.getText());
domDoc.appendChild(domComment);
} else
if (node instanceof ProcessingInstruction)
{
ProcessingInstruction pi = (ProcessingInstruction)node;
org.w3c.dom.ProcessingInstruction domPI = domDoc.createProcessingInstruction(pi.getTarget(), pi.getData());
domDoc.appendChild(domPI);
} else
{
throw new JDOMException("Document contained top-level content with type:" + node.getClass().getName());
}
}
}
catch (Throwable e)
{
throw new JDOMException("Exception outputting Document", e);
}
return domDoc;
}
/**
* @deprecated Method output is deprecated
*/
public org.w3c.dom.Element output(Element element)
throws JDOMException
{
org.w3c.dom.Document domDoc = createDOMDocument();
return output(element, domDoc, new NamespaceStack());
Throwable e;
e;
throw new JDOMException("Exception outputting Element " + element.getQualifiedName(), e);
}
private org.w3c.dom.Document createDOMDocument()
throws JDOMException
{
return createDOMDocument(null);
}
private org.w3c.dom.Document createDOMDocument(DocType dt)
throws JDOMException
{
if (adapterClass == null)
break MISSING_BLOCK_LABEL_45;
DOMAdapter adapter = (DOMAdapter)Class.forName(adapterClass).newInstance();
return adapter.createDocument(dt);
ClassNotFoundException e;
e;
break MISSING_BLOCK_LABEL_78;
IllegalAccessException e;
e;
break MISSING_BLOCK_LABEL_78;
InstantiationException e;
e;
break MISSING_BLOCK_LABEL_78;
e = (DOMAdapter)Class.forName("org.jdom.adapters.JAXPDOMAdapter").newInstance();
return e.createDocument(dt);
e;
break MISSING_BLOCK_LABEL_78;
e;
break MISSING_BLOCK_LABEL_78;
e;
e = (DOMAdapter)Class.forName("org.jdom.adapters.XercesDOMAdapter").newInstance();
return e.createDocument(dt);
e;
break MISSING_BLOCK_LABEL_111;
e;
break MISSING_BLOCK_LABEL_111;
e;
throw new JDOMException("No JAXP or default parser available");
}
protected org.w3c.dom.Element output(Element element, org.w3c.dom.Document domDoc, NamespaceStack namespaces)
throws JDOMException
{
org.w3c.dom.Element domElement;
int previouslyDeclaredNamespaces = namespaces.size();
domElement = null;
if (element.getNamespace() == Namespace.NO_NAMESPACE)
domElement = domDoc.createElement(element.getQualifiedName());
else
domElement = domDoc.createElementNS(element.getNamespaceURI(), element.getQualifiedName());
Namespace ns = element.getNamespace();
if (ns != Namespace.XML_NAMESPACE && (ns != Namespace.NO_NAMESPACE || namespaces.getURI("") != null))
{
String prefix = ns.getPrefix();
String uri = namespaces.getURI(prefix);
if (!ns.getURI().equals(uri))
{
namespaces.push(ns);
String attrName = getXmlnsTagFor(ns);
domElement.setAttribute(attrName, ns.getURI());
}
}
for (Iterator itr = element.getAdditionalNamespaces().iterator(); itr.hasNext();)
{
Namespace additional = (Namespace)itr.next();
String prefix = additional.getPrefix();
String uri = namespaces.getURI(prefix);
if (!additional.getURI().equals(uri))
{
String attrName = getXmlnsTagFor(additional);
domElement.setAttribute(attrName, additional.getURI());
namespaces.push(additional);
}
}
for (Iterator itr = element.getAttributes().iterator(); itr.hasNext();)
{
Attribute attribute = (Attribute)itr.next();
domElement.setAttributeNode(output(attribute, domDoc));
Namespace ns1 = attribute.getNamespace();
if (ns1 != Namespace.NO_NAMESPACE && ns1 != Namespace.XML_NAMESPACE)
{
String prefix = ns1.getPrefix();
String uri = namespaces.getURI(prefix);
if (!ns.getURI().equals(uri))
{
String attrName = getXmlnsTagFor(ns1);
domElement.setAttribute(attrName, ns1.getURI());
namespaces.push(ns);
}
}
if (attribute.getNamespace() == Namespace.NO_NAMESPACE)
domElement.setAttribute(attribute.getQualifiedName(), attribute.getValue());
else
domElement.setAttributeNS(attribute.getNamespaceURI(), attribute.getQualifiedName(), attribute.getValue());
}
for (Iterator itr = element.getContent().iterator(); itr.hasNext();)
{
Object node = itr.next();
if (node instanceof Element)
{
Element e = (Element)node;
org.w3c.dom.Element domElt = output(e, domDoc, namespaces);
domElement.appendChild(domElt);
} else
if (node instanceof String)
{
String str = (String)node;
org.w3c.dom.Text domText = domDoc.createTextNode(str);
domElement.appendChild(domText);
} else
if (node instanceof CDATA)
{
CDATA cdata = (CDATA)node;
org.w3c.dom.CDATASection domCdata = domDoc.createCDATASection(cdata.getText());
domElement.appendChild(domCdata);
} else
if (node instanceof Text)
{
Text text = (Text)node;
org.w3c.dom.Text domText = domDoc.createTextNode(text.getText());
domElement.appendChild(domText);
} else
if (node instanceof Comment)
{
Comment comment = (Comment)node;
org.w3c.dom.Comment domComment = domDoc.createComment(comment.getText());
domElement.appendChild(domComment);
} else
if (node instanceof ProcessingInstruction)
{
ProcessingInstruction pi = (ProcessingInstruction)node;
org.w3c.dom.ProcessingInstruction domPI = domDoc.createProcessingInstruction(pi.getTarget(), pi.getData());
domElement.appendChild(domPI);
} else
if (node instanceof EntityRef)
{
EntityRef entity = (EntityRef)node;
org.w3c.dom.EntityReference domEntity = domDoc.createEntityReference(entity.getName());
domElement.appendChild(domEntity);
} else
{
throw new JDOMException("Element contained content with type:" + node.getClass().getName());
}
}
for (; namespaces.size() > previouslyDeclaredNa
没有合适的资源?快使用搜索试试~ 我知道了~
通过jdom生成xml
共73个文件
class:62个
java:8个
jar:1个
3星 · 超过75%的资源 需积分: 9 7 下载量 81 浏览量
2010-08-25
14:22:07
上传
评论 1
收藏 264KB RAR 举报
温馨提示
通过jdom生成xml,实例过程:其实就是通过java bean 映射为xml的各个节点,明白了这个思想基本就可以用了。
资源推荐
资源详情
资源评论
收起资源包目录
通过jdom生成xml.rar (73个子文件)
通过jdom生成xml
jdom
JDOMAbout$Info.java 2KB
JDOMAbout$Info.class 3KB
JDOMAbout$Author.java 389B
META-INF
info.xml 3KB
MANIFEST.MF 2KB
JDOMAbout$1.java 248B
JDOMAbout.class 2KB
org
jdom
ContentList$FilterList.class 3KB
Document.class 5KB
input
BuilderErrorHandler.class 917B
DefaultJDOMFactory.class 4KB
JDOMFactory.class 2KB
SAXHandler.class 12KB
DOMBuilder.class 9KB
JAXPParserFactory.class 3KB
SAXBuilder.class 12KB
TextBuffer.class 2KB
JDOMParseException.class 1KB
IllegalAddException.class 4KB
Text.class 3KB
Comment.class 3KB
AttributeList.class 7KB
IllegalTargetException.class 1KB
filter
ContentFilter.class 3KB
ElementFilter.class 2KB
Filter.class 151B
ProcessingInstruction.class 7KB
IllegalNameException.class 1KB
Element.class 16KB
JDOMException.class 4KB
DataConversionException.class 848B
transform
JDOMSource$JDOMInputSource.class 1KB
JDOMResult.class 3KB
JDOMResult$FragmentHandler.class 1KB
JDOMResult$DocumentBuilder.class 3KB
JDOMSource$DocumentReader.class 1KB
JDOMSource.class 3KB
Namespace.class 3KB
Attribute.class 7KB
Attribute.java 6KB
xpath
JaxenXPath.class 4KB
XPath.class 4KB
XPath$XPathString.class 1KB
JaxenXPath$NSContext.class 2KB
output
DOMOutputter.java 9KB
XMLOutputter.class 21KB
NamespaceStack.class 2KB
XMLOutputter$NamespaceStack.class 548B
XMLOutputter$Format.class 1KB
SAXOutputter.class 17KB
DOMOutputter.class 9KB
JDOMLocator.class 926B
ContentList$FilterListIterator.class 5KB
EntityRef.class 3KB
IllegalDataException.class 1KB
DocType.class 3KB
ContentList.class 10KB
AttributeList.java 7KB
adapters
OracleV2DOMAdapter.class 3KB
CrimsonDOMAdapter.class 3KB
XercesDOMAdapter.class 4KB
DOMAdapter.class 455B
JAXPDOMAdapter.class 3KB
OracleV1DOMAdapter.class 3KB
AbstractDOMAdapter.class 3KB
XML4JDOMAdapter.class 4KB
CDATA.class 1KB
Verifier.class 15KB
JDOMAbout$Author.class 646B
JDOMAbout.java 3KB
JDOMAbout$1.class 150B
jdom.jar 132KB
Copy of Java2XML.java 2KB
共 73 条
- 1
资源评论
- woainiAngelA2012-07-20用了下,需要自己改进下,不过还是谢谢了
haijeen
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功