dom4j的XMLWrtier输出问题实例分析

dom4j的XMLWrtier输出问题实例分析

这篇文章主要介绍“dom4j的XMLWrtier输出问题实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“dom4j的XMLWrtier输出问题实例分析”文章能帮助大家解决问题。

首先先说一下现象吧,如果XML里面包含了一些特殊字符,比如 这个是line feed,也就是换行符。在经过它输出后总是会变成\n, 不好干预它的转化。下面来看具体的例子。

dom4j的XMLWrtier输出问题实例分析

这个是原始的xml文件:

Xml代码

<?xmlversion="1.0"encoding="UTF-8"?><Packageid="test"name="TestTest">Package>

下面是测试代码:

Java代码

packageorg.powermock.examples.dom4j;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.InputStreamReader;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.stream.StreamResult;importjunit.framework.Assert;importorg.dom4j.Document;importorg.dom4j.DocumentHelper;importorg.dom4j.Element;importorg.dom4j.io.DocumentSource;importorg.dom4j.io.XMLWriter;importorg.junit.Test;publicclassTestXMLOutput{publicfinalstaticStringFILE_NAME="text.xml";@TestpublicvoidtestDom4j(){Documentdocument=createDocument();try{ElementrootElement=document.getRootElement();StringpackageName=rootElement.attributeValue("name");Assert.assertEquals("Test\nTest",packageName);FileOutputStreamfos=newFileOutputStream("dom4j_"+FILE_NAME);XMLWriterwriter=newXMLWriter(fos);writer.setEscapeText(false);writer.write(document);fos.close();writer.close();}catch(Exceptione){e.printStackTrace();}}@TestpublicvoidtestDom(){Documentdocument=createDocument();try{FileOutputStreamfos=newFileOutputStream("dom_"+FILE_NAME);//UseaTransformerforoutputTransformerFactorytFactory=TransformerFactory.newInstance();Transformertransformer=tFactory.newTransformer();transformer.setOutputProperty("indent","yes");transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","4");transformer.setOutputProperty("encoding","UTF-8");DocumentSourcesource=newDocumentSource(document);StreamResultresult=newStreamResult(fos);transformer.transform(source,result);fos.close();}catch(Exceptione){e.printStackTrace();}}privateDocumentcreateDocument(){Documentdocument=null;try{Filefile=newFile(FILE_NAME);BufferedReaderreader=newBufferedReader(newInputStreamReader(newFileInputStream(file)));StringBufferbuffer=newStringBuffer();Stringline="";while((line=reader.readLine())!=null){buffer.append(line);}reader.close();document=DocumentHelper.parseText(buffer.toString());}catch(Exceptione){e.printStackTrace();}returndocument;}}

下面是dom4j的转换后的输出:

Xml代码

<?xmlversion="1.0"encoding="UTF-8"?><Packageid="test"name="TestTest">Package>

下面是transfomer的输出:

Xml代码

<?xmlversion="1.0"encoding="UTF-8"?><Packageid="test"name="TestTest">Package>

大家看到效果了把,dom4j变成了 \n, 但是transfomer还是原来的格式。

关于“dom4j的XMLWrtier输出问题实例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

发布于 2022-01-10 23:46:07
收藏
分享
海报
0 条评论
43
上一篇:.NET内存分配的知识点有哪些 下一篇:如何使用JS实现IE8浏览器input输入数字
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码