栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Xerces将DOM序列化为FileOutputStream

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Xerces将DOM序列化为FileOutputStream

Xerces确实与JDK捆绑在一起,但是您应该将其与JAXP API一起使用

javax.xml.parsers
。检查以下程序的输出。

另外,要序列化XML

document
,应使用DOM Level 3 Load and
Save(在JDK中存在)或不带样式表的XSLT转换(标识转换)。其余的取决于特定的实现。Xerces XMLSerializer已弃用:

不推荐使用。Xerces 2.9.0中不推荐使用该类。建议新应用程序使用DOM Level 3
LSSerializer或JAXP的XML转换API(TrAX)来序列化XML。有关更多信息,请参见Xerces文档。

这是使用DOM级别3进行序列化的示例:

import org.w3c.dom.*;import org.w3c.dom.bootstrap.DOMImplementationRegistry;import org.w3c.dom.ls.*;public class DOMExample3 {    public static void main(String[] args) throws Exception {        DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance(); DOMImplementationLS impl = (DOMImplementationLS) registry.getDOMImplementation("XML 3.0 LS 3.0");        if (impl == null) { System.out.println("No DOMImplementation found !"); System.exit(0);        }        System.out.printf("DOMImplementationLS: %sn", impl.getClass().getName());        LSParser parser = impl.createLSParser(     DOMImplementationLS.MODE_SYNCHRONOUS,     "http://www.w3.org/TR/REC-xml");        // http://www.w3.org/2001/XMLSchema        System.out.printf("LSParser: %sn", parser.getClass().getName());        if (args.length == 0) { System.exit(0);        }        document doc = parser.parseURI(args[0]);        LSSerializer serializer = impl.createLSSerializer();        LSOutput output = impl.createLSOutput();        output.setEncoding("UTF-8");        output.setByteStream(System.out);        serializer.write(doc, output);        System.out.println();    }}

这是身份转换的示例:

import org.w3c.dom.document;import javax.xml.parsers.documentBuilder;import javax.xml.parsers.documentBuilderFactory;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Source;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import javax.xml.transform.stream.StreamSource;public class DOMExample2 {    public static void main(String[] args) throws Exception {        documentBuilderFactory factory = documentBuilderFactory.newInstance();        documentBuilder parser = factory.newdocumentBuilder();        System.out.println("Parsing XML document...");        document doc;        doc = parser.parse(args[0]);        // Xerces Java 2                          // JAXP        System.out.println("JAXP: Displaying XML document...");        TransformerFactory transFactory = TransformerFactory.newInstance();        System.out.println(transFactory.getClass().getName());        //transFactory.setAttribute("indent-number", 2);        Transformer idTransform = transFactory.newTransformer();        idTransform.setOutputProperty(OutputKeys.METHOD, "xml");        idTransform.setOutputProperty(OutputKeys.INDENT,"yes");        // Apache default indentation is 0        idTransform.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");  Source input = new DOMSource(doc);        Result output = new StreamResult(System.out);        idTransform.transform(input, output);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498349.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号