2011-02-25 16 views
13

Java bir XML dosyasının bir kanonik form yapmak için en kolay yolu nedir? Bunun için bazı kodunuz var mı?Java: XML standartlaştırma

Ivan

,

EDIT/

Teşekkür: Ben this, this ve this gibi net çeşitli bağlantılar bulduk, ancak çalışması için yapamaz ben canonicalizer kullanılan Orada önerildi, ama garip sonuçlar elde ediyorum. daha precize olmak gerekirse, bu yöntem elemanları arasında beyaz boşluk silmez ... Bu bana seni mi:

<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

Aynı sorun, şimdiye kadar bunu çözmek nasıl başardınız? önce Apache XML Güvenlik kütüphanesi ile çalışmamış olan herkes için – Kwoinkwoin

cevap

17

Apache XML Security project de Canonicalizer sınıfı:

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

, statik yöntemi kullanarak kitaplık başlatması gerektiği "org.apache.xml.security.Init.init();" Bu kütüphaneden herhangi bir kodu çağırmadan önce veya bir hata alırsınız. – Stew

+0

@Stew marka noktası oldukça önemlidir. Gerçekten cevabın kendisinin bir parçası olmalı. – aroth

İlgili konular