Чтобы получить поддерево xml, я использую документ outdocp с поддержкой пространства имен
Код: Выделить всё
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("/EDoc/Signature/Object/QualifyingProperties/SignedProperties");
Node spNode = (Node) expr.evaluate(outdocp, XPathConstants.NODE);
Онлайн-инструмент xpather. com правильно добавляет это пространство имен
xpather.com
Проверенная настройка
Код: Выделить всё
xpath.setNamespaceContext(new NamespaceContext() {
@Override
public String getNamespaceURI(String s) {
if (s.equals("ds")) {
return "http://www.w3.org/2000/09/xmldsig#";
} else if (s.equals("xades")) {
return "http://uri.etsi.org/01903/v1.3.2#";
} else if (s.equals("xades141")) {
return "http://uri.etsi.org/01903/v1.4.1#";
}
return XMLConstants.NULL_NS_URI;
}
@Override
public String getPrefix(String s) {
return null;
}
@Override
public Iterator getPrefixes(String s) {
return null;
}
});
Подробнее здесь: https://stackoverflow.com/questions/785 ... -namespace
Мобильная версия