Java: XML normalization
•
Java
What is the simplest way to make the canonical form of XML files in Java? Do you have some complete code? I have found several links on the Internet, such as this, this and this, but I can't make it work:/
thank you,
Ivan
Editor: I used the specification proposed there, but I got strange results For simplicity, this method does not delete spaces between elements... This is what I get:
<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>
Solution
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);
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码