Java 在xml序列化期间将每个属性放在新行上
假设我有一个DOM对象(或一个包含xml的字符串)。是否可以以某种方式序列化xml,使每个属性显示在新行上 这是我想要的输出:Java 在xml序列化期间将每个属性放在新行上,java,xml,xml-serialization,pretty-print,Java,Xml,Xml Serialization,Pretty Print,假设我有一个DOM对象(或一个包含xml的字符串)。是否可以以某种方式序列化xml,使每个属性显示在新行上 这是我想要的输出: <parent> <anElement attrOne="1" attrTwo="2" attrThree="3" /> </parent> . 我正在搜索的是一些等价的东西,但在java中。库中有一个类,您可以覆盖该类,以任何您想要的格式输出。我不知道有任何jav
<parent>
<anElement
attrOne="1"
attrTwo="2"
attrThree="3"
/>
</parent>
. 我正在搜索的是一些等价的东西,但在java中。库中有一个类,您可以覆盖该类,以任何您想要的格式输出。我不知道有任何java XML API提供这种特定功能。我已经检查了JDOM和XOM的源代码,它们都在同一行中打印属性,并且没有提供覆盖这些属性的特定钩子
XOM和JDOM都有用于序列化XML的特定类(XMLOutputter
和Serializer
),并且这两个类都有用于处理属性序列化的受保护或公共方法,因此,如果需要,对这些类进行子类化,并重写适当的方法,以根据需要控制属性格式
但是,对于标准Java API,算了吧,那东西很糟糕。解析器可以做到这一点。由于XML是不可知空白的,您不应该使用样式表来执行这种特定的显示格式吗?@Nick Holt实际上,我使用xslt以编程方式修改XML dom对象。在后面的步骤中,我序列化转换的对象。序列化后我得到的是:a)以前有元素的空行(保留原始文档的空白)b)原始文档中属性之间的换行符消失了。该库的许可证上说“未经事先书面许可,不得使用的名称或其贡献者的名称来认可或推广源自本软件的产品。这是否意味着:如果A公司在程序B中使用DecentXML,A公司就不允许将程序B作为A公司提供的产品进行销售?如果是这样,这肯定不是一个选择。(我讨厌与法律问题有关的文本。它们是英语中主要的代码混淆)据我所知,这意味着未经我同意,你不能用我的名字为你的产品做广告。我的错。我浏览文档的速度太快,错误地认为这是指使用解析器的公司。实际上,它指的是提供DecentXML库的组织。