XML文件test.xml:
- <?xml version="1.0" encoding="UTF-8"?><books><book><name>哈里波特</name><price>10</price><memo>这是一本很好看的书。</memo></book></books>
java代码:
- import java.io.*;
- import java.net.URI;
- import javax.xml.parsers.*;
- import javax.xml.transform.*;
- import javax.xml.transform.dom.DOMSource;
- import javax.xml.transform.stream.StreamResult;
- import org.w3c.dom.Document;
- import org.xml.sax.InputSource;
- import com.sun.org.apache.xml.internal.serialize.*;
- /**
- * DOM方式操作XML
- *
- * @author Watson Xu
- * @date 2011-5-3 上午09:49:27
- */
- public class OperateXMLByDOM {
- /**
- * 将给定文件的内容或者给定 URI 的内容解析为一个 XML 文档,并且返回一个新的 DOM Document 对象
- *
- * @param filePath 文件所在路径
- * @return DOM的Document对象
- * @throws Exception
- */
- public static Document xml2Doc(String filePath) {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder builder = null;
- FileInputStream inputStream = null;
- Document doc = null;
- try {
- builder = factory.newDocumentBuilder();
- /* 通过文件方式读取,注意文件保存的编码和文件的声明编码要一致(默认文件声明是UTF-8) */
- File file = new File(filePath);
- doc = builder.parse(file);
- /* 通过一个URL方式读取 */
- URI uri = new URI(filePath);//filePath="http://java.sun.com/index.html"
- doc = builder.parse(uri.toString());
- /* 通过java IO 流的读取 */
- inputStream = new FileInputStream(filePath);
- doc = builder.parse(inputStream);
- return doc;
- } catch (Exception e) {
- return null;
- } finally {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (IOException e) {
- return null;
- }
- }
- }
- }
- /**
- * Document 转换为 String 并且进行了格式化缩进
- *
- * @param doc XML的Document对象
- * @return String
- */
- public static String doc2FormatString(Document doc) {
- StringWriter stringWriter = null;
- try {
- stringWriter = new StringWriter();
- if(doc != null){
- OutputFormat format = new OutputFormat(doc,"UTF-8",true);
- //format.setIndenting(true);//设置是否缩进,默认为true
- //format.setIndent(4);//设置缩进字符数
- //format.setPreserveSpace(false);//设置是否保持原来的格式,默认为 false
- //format.setLineWidth(500);//设置行宽度
- XMLSerializer serializer = new XMLSerializer(stringWriter,format);
- serializer.asDOMSerializer();
- serializer.serialize(doc);
- return stringWriter.toString();
- } else {
- return null;
- }
- } catch (Exception e) {
- return null;
- } finally {
- if(stringWriter != null){
- try {
- stringWriter.close();
- } catch (IOException e) {
- return null;
- }
- }
- }
- }
- /**
- * Document 转换为 String
- *
- * @param doc XML的Document对象
- * @return String
- */
- public static String doc2String(Document doc){
- try {
- Source source = new DOMSource(doc);
- StringWriter stringWriter = new StringWriter();
- Result result = new StreamResult(stringWriter);
- TransformerFactory factory = TransformerFactory.newInstance();
- Transformer transformer = factory.newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.transform(source, result);
- return stringWriter.getBuffer().toString();
- } catch (Exception e) {
- return null;
- }
- }
- /**
- * String 转换为 Document 对象
- *
- * @param xml 字符串
- * @return Document 对象
- */
- public static Document string2Doc(String xml) {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- DocumentBuilder builder = null;
- Document doc = null;
- InputSource source = null;
- StringReader reader = null;
- try {
- builder = factory.newDocumentBuilder();
- reader = new StringReader(xml);
- source = new InputSource(reader);//使用字符流创建新的输入源
- doc = builder.parse(source);
- return doc;
- } catch (Exception e) {
- return null;
- } finally {
- if(reader != null){
- reader.close();
- }
- }
- }
- /**
- * Document 保存为 XML 文件
- *
- * @param doc Document对象
- * @param path 文件路径
- */
- public static void doc2XML(Document doc, String path) {
- try {
- Source source = new DOMSource(doc);
- Result result = new StreamResult(new File(path));
- Transformer transformer = TransformerFactory.newInstance().newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.transform(source, result);
- } catch (Exception e) {
- return;
- }
- }
- public static void main(String[] args) {
- Document doc = xml2Doc("test.xml");
- System.out.println(doc);
- System.out.println(doc2String(doc));
- System.out.println(doc2FormatString(doc));
- doc = string2Doc(doc2FormatString(doc));
- doc2XML(doc, "1.xml");
- }
- }
输出的XML文件1.xml:
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <books>
- <book>
- <name>哈里波特</name>
- <price>10</price>
- <memo>这是一本很好看的书。</memo>
- </book>
- </books>
相关推荐
用WC3的DOM实现对XML文件的读取。 方法摘要: //通过文件路径及文件名读取xml public XMLReader(String path, String filename); //初始化读取包下的的XML文件 public XMLReader(Package package1, String fileName)...
生成XML文件ABAP程序 REPORT zams_xml_dom_create . TYPE-POOLS: ixml. CLASS cl_ixml DEFINITION LOAD. TYPES: BEGIN OF xml_line, data(256) TYPE x, END OF xml_line. DATA: l_ixml TYPE REF TO if_ixml, ...
// SAXReader就是一个管道,用一个流的方式,把xml文件读出来 // // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档 // Document document = reader.read(new File("User.hbm.xml")...
该项目采用dom4j从数据库表中生成xml数据 项目文档、数据库建表语句均已放置在项目中。 关键代码如下: public String getXml(Connection conn, int rm_id, String path) { //声明xml字符串 String file...
使用dom4j读写XML文档 1.获取文档的根节点. Element rootElm = document.getRootElement(); 2.取得某节点的单个子节点. Element memberElm=root.element("member");// "member"是节点名 3.取得节点的文字 String ...
1.读取XML文件,获得document对象. SAXReader reader = new SAXReader(); Document document = reader.read(new File("input.xml")); 2.解析XML形式的文本,得到document对象. String text = "<members></...
xml文件操作 public class XmlUtils { /** * 获取Document对象。根据xml文件的名字获取Document对象。 * * @param file * 要获取对象的xml文件全路径。 * @return 返回获取到的Document对象。 * @...
因为没有办法完全自动进行转换,我们可以应用dwr.xml文件的special signatures syntax配置部分设置类型的转换处理过程. 2.5 DOM Objects DWR 自动将DOM、DOM4J、JDOM和XOM转换成DOM树,前面这几种类型都仅仅返回...
public static Document parse( String xmlFile ) throws Exception { // 绑定XML文件,建造DOM树 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf....
XmlDocument 是一个文档对象模型(DOM),它允许我们编辑和更新 XML 文档,可以随机访问文档中的数据,还可以使用 XPath 查询。使用 XmlDocument,我们可以加载整个 XML 文档到内存中,然后使用 XPath 语法来查询和...
dom4j目前我用过这个jar包解析过XML中的CDATA,其他的还在学习中。 我的代码: public static String GetCDATA(String strXml) { SAXReader reader = new SAXReader(); String strJson = "[]"; try { Document ...
} <br> /** * 修改XML文件中内容,并另存为一个新文件 * 重点掌握dom4j中如何添加节点,修改节点,删除节点 * @param filename 修改对象文件 * @param newfilename 修改后另存为该文件 * @...
XSLT,是用于对XML进行文档格式转换,把一个XML文档转换成另一种格式的XML文档,但是其中内容是不变的。 &2.DTD(Document Type Difinition DTD文档是用于规定XML文档的结构。只有结构符合所引用的DTD文件的XML文件...
a、DOMDocument->load()作用:加载xml文件用法:DOMDocument->load( string filename )参数:filename,xml文件;返回:如果成功则返回 TRUE,失败则返回 FALSE。 b、DOMDocument->loadXML()作用:加载xml代码用法:...
TinyXML支持UTF-8,所以可以处理任何语言的XML文件,而且TinyXML也支持“legacy模式”——一种在支持UTF-8之前使用的编码方式,可能最好的解释是“扩展的ascii”。 正常情况下,TinyXML会检测出正确的编码并使用它...
1.读取XML文件,获得document对象. SAXReader reader = new SAXReader(); Document document = reader.read(new File("input.xml")); 2.解析XML形式的文本,得到document对象. String text = "<members></...
自己写的一个操作xml文件的类,可以把节点存入实体对象,也可以把实体对象插入xml文件,以及很多查询方法 返回类型全是String或List<String>、Map<String,String>等
// 把要解析的XML文档转化为输入流,以便DOM解析器解析它 InputStream is = new FileInputStream("test.xml"); // 解析XML文档的输入流,得到一个Document Document doc = dombuilder.parse(is); // 得到XML...
XMLDOM xmldom 是一个 javascript 用于浏览器支持的以下 API: 将 XML 字符串转换为 DOM 树( new DOMParser().parseFromString(xml, mimeType) => Document ) 创建、访问和修改 DOM 树( new DOMImplementation()....
String fromRead=Dom4jTest2.class.getClassLoader().getResource("xml/map1.xml").getPath(); List<Pois> list=new ArrayList(); SAXReader saxReader = new SAXReader(); org.dom4j.Document document=...