所以我有我在这里宣布一个XML文档:查找节点元素不正确的命名空间,在Java
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
将是节点。所以nodelist现在是空的,因为它期望tns:node,但是我通过节点。我知道它不好忽略命名空间,但在这种情况下它很好。我的问题是,我不知道如何在忽略名称空间的同时搜索Node的元素。我也想过把命名空间添加到进来的str中,但我不知道该怎么做。
任何帮助将不胜感激,
感谢,-Josh
该字符串已经有一个名称空间,我需要添加到该方法的字符串需要识别该名称空间。 – Grammin 2011-01-14 15:34:42
您可以发布您正在尝试处理的完整xml的最小示例。您发布的xml示例使用的是不在任何地方声明的名称空间。命名空间tns需要映射到XML文档的URL以形成格式(请参阅http://en.wikipedia.org/wiki/XML_namespace#Namespace_declaration)。 – 2011-01-14 15:44:46