通过递归方法打印xml中的所有属性

时间:2013-07-20 03:34:03

标签: recursion dom4j

问题是为什么我找不到rootElement的任何属性?

我的xml是

<?xml version="1.0" encoding="GBK"?>

<AccountInfos>
  <!--this is a test for dom4j-->
  <AccountInfo1 WebsiteName="ÐÂÀË" Account="123">Account1</AccountInfo1>
  <AccountInfo2 WebsiteName="ÍøÒ×" Account="123">Account2</AccountInfo2>
</AccountInfos>

我的代码就像这样

    private void treeWalker(Element element)
{
    int size = element.nodeCount();
    for (int i = 0; i < size; i++)
    {
        Node node = element.node(i);
        if (node instanceof Element)
        {
            treeWalker((Element) node);
        }
        else if(node instanceof Attribute)
        {
            Attribute attribute=(Attribute)node;
            System.out.println(attribute.getName()+":"+attribute.getValue());
        }
        else 
        {
            continue;
        }
    }
}

当我在这个方法中调试时,我无法进入第二个if块

1 个答案:

答案 0 :(得分:0)

属性不被视为元素(或实际上是分支)内容(例如元素,注释或文本节点)的一部分。你必须特别检索,例如使用attributeIterator()。