2011-02-25 251 views
13

在Java中制作XML文件的规范形式的最简单方法是什么?你有一些完成代码吗?我发现在网上几个环节,比如thisthisthis,但我不能让它工作:/Java:XML规范化

感谢,

伊万

编辑:我使用的canonicalizer那是在那里提出的,但我得到了奇怪的结果。更precize,此方法不删除元素之间的白色空间......这就是我得到:

<Metric xmlns="http://www.ibm.com/wsla" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="total_memory_consumption_metric" type="double" unit="Mbit" xsi:schemaLocation="http://www.ibm.com/wsla WSLA.xsd">      <Source>ServiceProvider</Source>      <MeasurementDirective resultType="double" xsi:type="StatusRequest">        <RequestURI> ***unused*** </RequestURI>      </MeasurementDirective>     </Metric> 
+0

同样的问题,你现在是否设法解决它? – Kwoinkwoin 2018-02-28 17:30:07

回答

17

Canonicalizer类在Apache XML Security project

Canonicalizer canon = Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS); 
byte canonXmlBytes[] = canon.canonicalize(yourXmlBytes); 
String canonXmlString = new String(canonXmlBytes); 
+13

对于之前没有使用Apache XML Security库的人,必须使用静态方法“org.apache.xml.security.Init.init();”来初始化库在从该库调用任何代码之前,或者您会收到错误。 – Stew 2012-11-15 22:16:25

+0

@Stew使得这一点非常重要。它本身应该是答案的一部分。 – aroth 2016-04-11 04:01:13