Я работаю над веб-приложением на Paly! Фреймворк.
Я должен разобрать документ XML. Я использую XPath из Play.libs.
Вот часть документа, которую мне не удалось найти:
<atom:link rel="self" href="http://mylink.com/">
И кусок кода, который я написал.
import java.util.Map;
import java.util.HashMap;
import org.w3c.dom.*;
import play.libs.XPath;
import play.libs.WS;
import play.libs.ws.*;
WS.HttpResponse response = // I retrieve a Http response
Document xmlDoc = response.getXml();
Map<String,String> namespaces = new HashMap<String,String>(){{put("atom", "http://www.w3.org/2005/Atom");}}
Node link = XPath.selectNode("atom:link", xmlDoc, namespaces)
Я тоже пробовал
* * 1010
И не удалось, и вернул ноль.
изменить:
Я обнаружил в сети (здесь) , что эта проблема может исходить от DocumentBuilder (документ не знает о пространствах имен). И все же я его не создавал, это стандартный ответ в Openstack Compute API. это означает, что я не контролирую его построение.
если вы хотите увидеть полный XML-документ: здесь
edit2:
Похоже, у меня «проблема, не связанная с пространством имен», есть предложения, чтобы избежать этой проблемы?