18

在 Java 中制作规范形式的 XML 文件的最简单方法是什么?你有一些完成的代码吗?我在网上找到了几个链接,例如thisthisthis,但我无法使其工作:/

谢谢,

伊万

编辑:我使用了那里提出的规范化程序,但我得到了奇怪的结果。更准确地说,这种方法不会删除元素之间的空格......这就是我得到的:

<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>
4

2 回答 2

27

Apache XML 安全项目中的Canonicalizer类。

初始化库。

org.apache.xml.security.Init.init(); 

转换您的 XML。

Canonicalizer canon = Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS);
byte canonXmlBytes[] = canon.canonicalize(yourXmlBytes);
String canonXmlString = new String(canonXmlBytes);
于 2011-02-25T13:20:59.927 回答
2

如果您正在使用 XOM,或者如果您不需要 Apache XML 安全性,另一个选项是nu.xom.canonical.Canonicalizer 。

于 2015-11-04T00:01:20.393 回答