Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在xml序列化期间将每个属性放在新行上_Java_Xml_Xml Serialization_Pretty Print - Fatal编程技术网

Java 在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

假设我有一个DOM对象(或一个包含xml的字符串)。是否可以以某种方式序列化xml,使每个属性显示在新行上

这是我想要的输出:

<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库的组织。