为什么我无法使用此方法获取属性名称?

时间:2018-04-08 12:03:32

标签: java xml

@Test
public void testDolaAmeng() throws Exception {
    DocumentBuilderFactory dy = DocumentBuilderFactory.newInstance();

    DocumentBuilder db = dy.newDocumentBuilder();

    File f = new File("E:/JavaApps/day02/src/_05XML/connect.xml");

    Document dc = db.parse(f);

    NodeList nl = dc.getElementsByTagName("linkman");

    Element et = (Element) nl.item(1);

    String name1 = et.getAttribute("name");

    System.out.println(name1);  //nothing  get.....

    // Element son1  =(Element)et.getElementsByTagName("name").item(0);

    //String name2 = son1.getTextContent();

    //System.out.println(name2)  //      using this can get huing
}

这是我的XML文件,我无法使用第一个打印件获取名称。我不知道为什么   在name2中我可以得到ihuing,在名称1但是答案是什么

enter image description here

1 个答案:

答案 0 :(得分:0)

名称不是属性,它是子元素。如果您知道总有一个具有该名称的后代(不仅仅是孩子!),您可以执行以下操作,您的架构建议:

String nameValue = et.getElementsByTagName("name").item(0).getTextContent();

澄清符号

<linkman id="5"> // linkman - element, id - attribute
    <name>Will</name> // element, child of linkman element
    <something> // element, child of linkman element, parent of nestedSomething, ancestor of nestedSomething text node
        <nestedSomething> // element, child of something, descendant of linkman
            blablabla
        </nestedSomething>
    </something>
</linkman>

所有的孩子都是后代,所有的父母都是祖先。