У меня сейчас проблема с выражениями xpath в java.Я пытаюсь получить список shopNames!
Я получил следующий XML;
<?xml version="1.0" encoding="UTF-8"?>
<w:shops xmlns:w="namespace">
<w:shop>
<w:shopID>1</w:shopID>
<w:shopName>ShopName</w:shopName>
<w:shopURL>ShopUrl</w:shopURL>
</w:shop>
<w:shop>
<w:shopID>2</w:shopID>
<w:shopName>ShopNames</w:shopName>
<w:shopURL>ShopUrl</w:shopURL>
</w:shop>
</w:shops>
И я передаю это в документе для функции, подобной этой:
List<String> getShops(Document d)
throws Exception
{
List<String> shopnames = new ArrayList<String>();
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("/descendant::w:shop/descendant::w:shopName");
NodeList nodes = (NodeList) expr.evaluate(d, XPathConstants.NODESET);
for(int x=0; x<nodes.getLength(); x++)
{
shopnames.add("" + nodes.item(x).getNodeValue());
}
return shopnames;
}
Однако проблема в том, что он просто возвращает пустой список, я подозреваю, что это мое выражение xpath, но я не уверен в этом.
Кто-нибудь видел проблему здесь?