import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.net.URL;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;
import org.jdom.CDATA;
import org.jdom.Comment;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Text;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.jdom.transform.JDOMResult;
import org.jdom.transform.JDOMSource;
import org.jdom.xpath.XPath;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class JDOMTest {
public JDOMTest() throws IOException, JDOMException, TransformerException {
Document doc = createDoc();
printDoc(doc);
doc = load("address.xml");
findPostCode(doc);
printDoc(doc);
doc = load("class.xml", getClass().getResource("/net/xml/class.dtd"));
printDoc(doc);
doc = load("booklist.xml");
printDoc(doc);
doc = transform(doc, "booklist2books.xslt");
printDoc(doc);
}
/**
* @param args
*/
public static void main(String[] args) {
try {
new JDOMTest();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (JDOMException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (TransformerException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public Document createDoc(){
Document doc = new Document();
doc.addContent(new Comment("测试注释信息"));
Element address = new Element("address");
doc.addContent(address);
address.addContent(
new Element("name").addContent(
new Element("title").addContent(
new Text("<b>Mr.</b>")
)
).addContent(
new Element("first-name").addContent(
new CDATA("<b>Robin</b>")
)
)
);
return doc;
}
public void printDoc(Document doc) throws IOException{
Format format = Format.getPrettyFormat();
XMLOutputter outputter = new XMLOutputter(format);
outputter.output(doc, new OutputStreamWriter(System.out));
}
public Document load(String xmlFile) throws JDOMException, IOException{
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(new File(xmlFile));
return doc;
}
public Document load(String xmlFile, final URL dtd) throws JDOMException, IOException{
SAXBuilder builder = new SAXBuilder(true);
builder.setEntityResolver(new EntityResolver(){
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
if("//test By Robin".equals(publicId)){
return new InputSource(dtd.openStream());
}
return new InputSource(systemId);
}
});
Document doc = builder.build(new File(xmlFile));
return doc;
}
public Document transform(Document doc, String xsltFile) throws FileNotFoundException, TransformerException{
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer(new StreamSource(new FileInputStream(xsltFile)));
JDOMSource source = new JDOMSource(doc);
JDOMResult result = new JDOMResult();
transformer.transform(source, result);
return result.getDocument();
}
public void findPostCode(Document doc) throws JDOMException{
XPath path = XPath.newInstance("/address/post-code");
String code = path.valueOf(doc);
System.out.println(code);
System.out.println(doc.getRootElement().getChildText("post-code"));
}
}
分享到:
相关推荐
jdom解析xml
这是我做的简单的一个在jsp中用jdom解析xml的程序。只是显示,添加等简单的功能,来学习学习jdom解析xml的程序。如果你想学习那这一定是个很好的例子
jdom解析xml文件小实例jdom解析xml文件小实例jdom解析xml文件小实例
jdom解析xml文件的源代码、jar包以及示例xml文件
基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发源码-用jdom解析xml.zip 基于java的开发...
NULL 博文链接:https://xurichusheng.iteye.com/blog/1518547
一个关于用jdom解析xml,遍历xml,建立xml的简单例子.
利用JDOM解析xml文件,并根据xml中为类名,生成相应的对象。
jdom解析XML(修改为比较通用的方法) jdom解析XML(修改为比较通用的方法) jdom解析XML(修改为比较通用的方法)
Jdom操作、创建和解析XML Jdom操作、创建和解析XML Jdom操作、创建和解析XML
jdom解析XML文件and把字符串解析成XML.txt jdom解析XML文件and把字符串解析成XML.txtjdom解析XML文件and把字符串解析成XML.txt
JDOM解析XML.rar JDOM解析XML.rar JDOM解析XML.rar
Dom JDom 解析xml 文件 Dom JDom 解析xml 文件 Dom JDom 解析xml 文件 自己使用 最好不要下载
这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写以及dtd文件约束xml文件。这是一个jdom解析xml的小例子、里面还有dtd文件的编写...
使用JDM技术解析XML文档,在了解此程序前请到JDOM官网下载一个JDOM的类包,然后配置环境变量或者将类包连接到eclipse路径中,此程序完全可以运行,在压缩包中还包括原xml文档!!!请参考!
Java中使用jdom解析xml的案例, 以及文档说明。
xml样例 博文链接:https://jingrenlang.iteye.com/blog/356160
NULL 博文链接:https://songlitao.iteye.com/blog/2257789
jdom-1.0 jdom jdom-1.0,jdom解析xml
解析XML的好帮手,大家来看看吧,包你用得着,附带JAR包使用说明