我正在尝试规范化我从 android 设备上的服务器收到的一些 xml。不过,Android 似乎并不喜欢org.apache.xml.security.c14n.Canonicalizer.canonicalize(String inputText)
. 这是因为 Android 的 DOM 库不喜欢DocumentBuilder.setValidating()
(被 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?