查找给定命名空间中的所有标记

时间:2015-11-12 12:49:09

标签: java jsoup xml-namespaces

如何查找给定命名空间中的所有标记?

示例XML提取:

<myNamespace:tag1>
    <myNamespace:tag2>test</myNamespace:tag2>
    <span>test2</span>
</myNamespace:tag1>

我想获得一个包含myNamespace

标签的列表
  • myNamespace:tag1
  • myNamespace:tag2

我尝试myDocument.select("myNamespace|"),但遗憾的是它不起作用。

1 个答案:

答案 0 :(得分:0)

这是来自this链接的修改后的答案,我根据您的情况对其进行了编辑:

// Elements of any tag, but with 'types' are stored here
Elements namespaces = new Elements();

// Select all elements
for( Element element : doc.select("*") )
{
    // Split the tag by ':'
    final String s[] = element.tagName().split(":");

    /*
     * If there's a namespace (otherwise s.length == 1) use the 2nd
     * part and check if the element namespace is "myNamespace"
     */
    if( s.length > 1 && s[0].equals("myNamespace") == true )   
    {
        // Add this element to the found elements list
        namespaces.add(element);
    }
}