Я пытаюсь обнаружить / обойти эту ошибку в элементах RSS.
Это означает, что я должен найти неправильное объявление пространства имен и изменить его
значение в правильном пространстве имен. Например:
xmlns:media="http://search.yahoo.com/mrss"
должно быть:
xmlns:media="http://search.yahoo.com/mrss/"
Как мне добиться этого с помощью org.w3c.Document?
Я имею в виду, как выяснить, как получить все элементы определенного пространства имен:
XPathFactory xpf = XPathFactory.newInstance();
XPath xpath = xpf.newXPath();
XPathExpression expr = xpath.compile("//*[namespace-uri()='http://search.yahoo.com/mrss']");
Object result = expr.evaluate(d, XPathConstants.NODESET);
if (result != null) {
NodeList nodes = (NodeList) result;
for(int node=0;node<nodes.getLength();node++)
{
Node n = nodes.item(node);
this.log.warn("Found old mediaRSS namespace declaration: "+n.getTextContent());
}
}
Так что теперь я должен выяснить, как изменить пространство имен узла через JAXP.