根据属性检索节点元素的值

时间:2014-05-13 09:59:07

标签: java xml dom xml-parsing

如何使用dom& amp;基于属性名称检索节点元素的值xml解析

<ROOT>
    <A>
        <aa name="xyz">k,l,m </aa>
        <aa name="pqr">a,b,h </aa>
        <aa name="abc">s,t,r </aa>
         ...
    </A>
    <B>
        <bb name="t1">r,st,t</bb>
        ...
    </B>
</ROOT>    

... 实施的片段尝试了:

NodeList nodeList = <xmlDoc>.getElementsByTagName("aa");

        for (int i = 0; i < nodeList.getLength(); i++)
        {
            Node node = nodeList.item(i);

            if (node.getNodeType() == Node.ELEMENT_NODE)
            {
                Element element = (Element) node;

                System.out.println(element.getTextContent()); 

//? getNodeValue()//?如何通过将属性名称作为匹配条件来获取,

// f.e:如何为属性名为a,b,h的节点aa打印pqr

1 个答案:

答案 0 :(得分:0)

对于属性,它将是:element.getAttribute("name");

如果您想按属性搜索,那么

            XPath xpath = XPathFactory.newInstance().newXPath();
            NodeList nl = (NodeList)xpath.compile("//aa[@name='pqr']").evaluate(doc, XPathConstants.NODESET);

//Rest of the code same

*请根据需要更改xpath。我自己没有运行它,但你明白了。