首先属性中的回车换行对我来说非常有用,可是在使用过程中发现dom4j自动把回车换行去掉了。
我需要生成的部分xml是这样的。
<data>
@H=16*16
@C=60
我的中国
@I=000
@K=2
@O=000
@Q
</data>
生成xml的部分代码
try {
StringWriter writer = new StringWriter();
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GB2312");
XMLWriter xmlwriter = new XMLWriter(writer, format);
xmlwriter.write(document);
returnValue = writer.toString();
} catch (Exception ex) {
ex.printStackTrace();
}
用如上代码后生成xml的结果为
<data>@H=16*16 @C=60 我的中国 @I=000 @K=2 @O=000 @Q</data>
证实在生成xml前的代码有回车换行后,详细想“一定是dom4j的问题“
问题就出在OutputFormat.createPrettyPrint();这上。
/**
* A static helper method to create the default pretty printing format. This
* format consists of an indent of 2 spaces, newlines after each element and
* all other whitespace trimmed, and XMTML is false.
*
* @return DOCUMENT ME!
*/
public static OutputFormat createPrettyPrint() {
OutputFormat format = new OutputFormat();
format.setIndentSize(2);
format.setNewlines(true);
format.setTrimText(true);
format.setPadText(true);
return format;
}
/**
* A static helper method to create the default compact format. This format
* does not have any indentation or newlines after an alement and all other
* whitespace trimmed
*
* @return DOCUMENT ME!
*/
public static OutputFormat createCompactFormat() {
OutputFormat format = new OutputFormat();
format.setIndent(false);
format.setNewlines(false);
format.setTrimText(true);
return format;
}
}
createPrettyPrint()方法中有
format.setTrimText(true);
问题就出在这里。
所以新建了类MyOutputFormat 继承了OutputFormat重载了createPrettyPrint()方法
public class MyOutputFormat extends OutputFormat {
public static OutputFormat createPrettyPrint() {
OutputFormat format = new OutputFormat();
format.setIndentSize(2);
format.setNewlines(true);
format.setTrimText(false);
format.setPadText(true);
return format;
}
}
修改后的代码代码
try {
StringWriter writer = new StringWriter();
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GB2312");
XMLWriter xmlwriter = new XMLWriter(writer, format);
xmlwriter.write(document);
returnValue = writer.toString();
} catch (Exception ex) {
ex.printStackTrace();
}
最后问题解决
分享到:
相关推荐
4. **修改XML**:添加、删除或更新XML节点和属性。例如,用新的作者替换现有值: ```cpp XMLNodePtr authorNode = book->getChildByName("author"); authorNode->setValue("Michael Abrash"); ``` 5. **序列化...
4. `getElementsByName()`:根据name属性获取元素,旧版本中只对可提交的元素有效。 5. `querySelector()`:使用CSS选择器选取第一个匹配的元素,不被IE7及以下版本兼容。 6. `querySelectorAll()`:返回所有匹配CSS...
- XML处理:DOM模型中,使用load方法加载XML文档。 - 构造函数:构造函数必须与类名相同,用于初始化对象。 - 接口:接口可以声明方法、属性、索引器和事件,但不能声明域或私有成员变量。 - ASP.NET服务器控件...
在文本编辑器中,需要监听键盘事件来实现文本的实时编辑,如回车换行、复制粘贴、撤销重做等功能。 3. CSS样式控制:为了提供良好的用户体验,文本编辑器需要具备基本的样式控制,如字体、字号、颜色等。这需要熟悉...
超实用的jQuery代码段精选近350个jQuery代码段,涵盖页面开发中绝大多数要点、技巧与方法,堪称史上最实用的jQuery代码参考书,可以视为网页设计与网站建设人员的好帮手。《超实用的jQuery代码段》的代码跨平台、跨...
- DOM(文档对象模型):一种处理XML文档的方式,load方法用于加载XML文档到内存中。 请注意,这只是一个简要的解释,实际的考试可能会涉及到更深入的问题,包括SQL查询、事务管理、面向对象编程原则、异常处理、...
21.7 使用DOM获取页面中某控件的属性 21.8 将某行排在表格的最后 21.9 动态删除页面中的元素 21.10 克隆表格 21.11 拖动表格行改变顺序 21.12 表格操作常用方法 第22章 流行应用:AJAX和Property的应用技巧 22.1 ...
21.7 使用DOM获取页面中某控件的属性 21.8 将某行排在表格的最后 21.9 动态删除页面中的元素 21.10 克隆表格 21.11 拖动表格行改变顺序 21.12 表格操作常用方法 第22章 流行应用:AJAX和Property的应用技巧 22.1 ...
7. **ID属性**:Ajax中使用ID属性来定位DOM元素,以便进行操作。 8. **div与span**:div常用于组织大块内容,内容会独占一行;span则用于包裹小块内容,与其他内容并排显示。 9. **jQuery与DOM**:jQuery库提供了...
4. 文件属性查看:在Windows中,右击文件图标,可以在“属性”中查看文件的大小、创建日期等信息,但一般不包括文件的字数和行数。 5. Visual Basic随机数生成:`Rnd()`函数用于生成0到1之间的随机浮点数,`Int()`...
例如,可以访问一个名为Person的对象中的name属性和address属性,而address对象又可能包含city、street和postcode等属性。通过这种方式,开发者可以很轻松地在Web页面上展示从服务器获取的复杂数据结构。 总的来说...
7.6.2 通过Microsoft.XMLDOM调用Web Service 291 7.6.3 XMLHTTP POST调用Web Service 293 7.6.4 SOAP调用Web Service 293 7.7 WinForm如何调用Web Service 295 7.7.1 .NET的WinForm调用Web Service 295 7.7.2 手动...
7.6.2 通过Microsoft.XMLDOM调用Web Service 291 7.6.3 XMLHTTP POST调用Web Service 293 7.6.4 SOAP调用Web Service 293 7.7 WinForm如何调用Web Service 295 7.7.1 .NET的WinForm调用Web Service 295 7.7.2 手动...
**知识点详解** 本文将深入探讨如何使用JSP和AJAX技术来实现Google Suggest的效果,即用户在输入框中输入内容时,...在实际开发中,还需要考虑性能优化、错误处理、兼容性等问题,确保应用在各种环境下都能稳定运行。
##### 四、因为存在兼容的问题我们常常使用以下的代码 由于不同的浏览器对某些 DOM 操作的支持不同,通常会使用一些通用的方法来提高代码的兼容性,比如使用 `window.onload` 代替 `document.ready`。 ##### 五、...
jQuery提供了一系列API来高效地选择、操作DOM元素,包括元素的选择、属性的修改、事件处理等。 总结来说,JS学习涉及基础语法、数据类型、进制转换、错误处理等多个方面,理解这些基础知识对于深入学习和应用...
10. XML处理:DOM(Document Object Model)模型通过load方法加载XML文档,便于程序对其进行操作。在.NET中,可能需要使用XmlNode和XmlDocument类来解析和操作XML。 11. 构造函数和接口:构造函数是与类同名的特殊...
3. AJAX动态获取值:AJAX(Asynchronous JavaScript and XML)是用于异步更新页面的技术。在这个例子中,我们可以在用户输入时触发AJAX请求,获取与输入匹配的下拉选项。 ```javascript document.getElementById('...