В извлеченном поддереве XML отсутствует пространство имен.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 В извлеченном поддереве XML отсутствует пространство имен.

Сообщение Anonymous »

У меня есть XML-документ, части которого необходимо хешировать для подписи.
Чтобы получить поддерево xml, я использую документ outdocp с поддержкой пространства имен

Код: Выделить всё

XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("/EDoc/Signature/Object/QualifyingProperties/SignedProperties");
Node spNode = (Node) expr.evaluate(outdocp, XPathConstants.NODE);
Но в результатах результатов spNode с префиксом ds отсутствует пространство имен xmlds::ds
Онлайн-инструмент 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»