1

Android デバイスのサーバーから受信した xml を正規化しようとしています。ただし、Android は気に入らないようですorg.apache.xml.security.c14n.Canonicalizer.canonicalize(String inputText)DocumentBuilder.setValidating()これは、Android の DOM ライブラリが、自動的に例外をスローする (Canonicalizer によって使用される) のを好まないためです。その面倒な行なしで Canonicalizer から直接コードをコピーしようとしました:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
InputSource in = new InputSource(new ByteArrayInputStream(inputBytes));
DocumentBuilder db =  dbf.newDocumentBuilder();
Document doc = db.parse(in);
byte result[] = Canonicalizer.getInstance(canonicalizationMethod).canonicalizeSubtree(doc);

ただし、これは適切に正規化できません。xml タグ内の属性は、必要に応じて名前空間を最初に持つように並べ替えられません。

Androidでxmlを実質的に正規化する他の方法はありますか?

4

1 に答える 1