Найти элементы в узле без надлежащего пространства имен, в Java

Итак, у меня есть xml-документ, который я объявил здесь:

DocumentBuilder dBuilder = dbFactory_.newDocumentBuilder();
StringReader reader = new StringReader(s);
InputSource inputSource = new InputSource(reader);
doc_ = dBuilder.parse(inputSource);

Затем у меня есть функция, в которой я передаю строку, и я хочу сопоставить ее с элементом в моем xml:

void foo(String str)
{
  NodeList nodelist = doc_.getDocumentElement().getElementsByTagName(str);
}

проблема заключается в том, что когда появляется str , в нем нет какого-либо пространства имен, поэтому xml, который я бы тестировал, будет:

<Random>
  <tns:node />
</Random>

, а str будет узлом . Итак, список узлов теперь равен нулю, потому что он ожидает tns: node, но я передал узел. И я знаю, что игнорировать пространство имен нехорошо, но в данном случае все в порядке. Моя проблема в том, что я не знаю, как искать элемент в узле, игнорируя пространство имен. Я также подумал о добавлении пространства имен к входящей строке, но я тоже не знаю, как это сделать.

Любая помощь будет принята с благодарностью,

Спасибо, -Josh

19
задан Grammin 14 January 2011 в 15:22
поделиться