我正在尝试缩进由Transformer生成的XML。除了第一个节点-
文档元素之外,所有DOM节点都按预期缩进。document元素不是以新行开头,只是在XML声明之后立即进行连接。
当我使用java 1.6或1.5时,当我移至java 1.7时会出现此错误。
我的代码:
ByteArrayOutputStream s = new OutputStreamWriter(out, "utf-8");
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","4");
transformer.transform(new DOMSource(doc), new StreamResult(s));
输出:
<?xml version="1.0" encoding="UTF-8"?><a>
<b>bbbbb</b>
</a>
有人知道为什么吗?
顺便说一句,当我添加属性时
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes");
它按预期方式工作,但是xml声明已更改,它现在也具有独立属性,并且我不想更改xml声明。
好 ,
我在Java API中发现了以下内容:
如果指定了doctype-system属性,则xml输出方法应在第一个元素之前输出文档类型声明。
所以我用了这个属性
transformer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC, "yes");
它解决了我的问题,而没有更改我的xml声明。
谢谢。
我正在用PyGame制作一个小游戏,相机聚焦在一个代表角色的精灵上,当按下箭头键时,地图会围绕它移动。问题是地图不动。我以前多次遇到过这个问题,我想我已经把它缩小到可能的范围,但是我不知道如何真正解决这个问题。 这是代码: 基于我过去的PyGame程序,我总是在移动被绘制到屏幕上的精灵集时遇到问题,比如我在这里所做的。即使是平庸简单的例子也会失败。我想知道的是这是为什么,我怎样才能简明扼要地画出大
问题内容: 从中移出文件时,我希望发生两件事: 更新对该类的所有引用(在项目的所有文件中),以便使用新包 我在Eclipse Ganymede中使用颠覆性工具。当我将文件从一个包拖到另一个包时,所有引用都将更新,并且文件在文件系统上移动。但是SVN没有意识到这一点,因此该命令在不存在时(显然是因为eclipse已经移动了它)而不会起作用(显然)。 有没有办法让Eclipse进行重构,但是使用svn
如果你开始在GitBook上写书了,但现在你想把它的源代码托管到GitHub上,不用担心,这很简单: 使用GitHub导入工具 使用GitHub的导入工具:import.github.com/new。 输入你的GitBook的git url,例如:https://git.gitbook.com/MyName/MyBook.git(这个url可以在你书本的设置中找到)。 输入你的GitHub仓库。
为了增强用户体验,CSS3新增的一个非常实用的 resize属性,它允许用户通过拖动的方式,来自由缩放元素的尺寸。这在以前只能通过Javascript 编写大量脚本来实现,费时费力,效率低下。 resize属性的可选值有 none | both | horizontal | vertical,默认值为 none。none 表示不允许用户调整元素的尺寸;both 表示用户可以调整元素的宽度和高度;h
我有一个占用内存的java服务器任务。首先,我怀疑它是否超过了MinHeapFreeRatio,但这只是猜测。更有趣的是,GC将成熟代减少到大约2%,但从未减少为堆分配的内存。
问题内容: 如果我在某个对象上调用该方法,它将返回该对象的内部地址(默认实现)。该地址是逻辑地址还是物理地址? 在垃圾回收中,由于内存压缩,对象在内存中发生移位。如果我在GC之前和之后调用哈希码,它将返回相同的哈希码(返回),如果是,则为什么(由于压缩地址可能会更改)? 问题答案: @erickson或多或少是正确的。返回的哈希码在对象的生存期内不变。 (通常)实现此方法的方式非常聪明。当对象由垃