XML Canonicalizer问题

我正在使用包
org.apache.xml.security.c14n
来实现XML的规范化。我使用以下代码:
private String CanonicalizeXML(String XML) throws InvalidCanonicalizerException, CanonicalizationException, ParserConfigurationException, IOException, SAXException {

    Canonicalizer canon = Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS);
    return new String(canon.canonicalize(XML.getBytes()));
}
但是,它似乎没有像我预期的那样工作,因为它不会删除元素之间的任何非必要的空格。我做错了吗? 谢谢, 伊万     
已邀请:
我认为这可能是你的期望是不正确的: 您没有说明哪个版本的XML Canonicalization,但1.0和1.1都说:   字符内容中的所有空格都是   保留(不包括删除的字符   在换行正常化期间)     
您的xml文档是引用dtd还是模式?如果没有其中一个解析器无法知道哪个空白是重要的,那么它必须保留它。     
org.apache.xml.security.c14n不会删除空格。 我通过在SAXBuilder上设置setIgnoringBoundaryWhitespace = true来解决:
SAXBuilder builder = new SAXBuilder ();
builder.setIgnoringBoundaryWhitespace(true);
org.jdom2.Document doc = builder.build(is);
DOMOutputter out = new DOMOutputter();
Document docW3 = out.output(doc);
    

要回复问题请先登录注册