Java 如何获取给定节点的属性?

Java 如何获取给定节点的属性?,java,xml-parsing,Java,Xml Parsing,我正在尝试编写DOM XML解析。 我的Xml文件 <?xml version="1.0"?> <BLAH> <AgentNm type="citi1"> <accName>accName1</accName> <accType>accType1</accType> <someThing>someThing1</someThing>

我正在尝试编写DOM XML解析。 我的Xml文件

<?xml version="1.0"?>
<BLAH>
    <AgentNm type="citi1">
        <accName>accName1</accName>
        <accType>accType1</accType>
        <someThing>someThing1</someThing>
        <amt>100000</amt>
    </AgentNm>
    <AgentNm type="citi2">
        <accName>accName2</accName>
        <accType>accType2</accType>
        <someThing>someThing2</someThing>
        <amt>200000</amt>
    </AgentNm>
</BLAH>

帐户名称1
accType1
有些事
100000
帐户名称2
accType2
什么
200000
我试着遵循java代码

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
            Document doc = docBuilder.parse (new File("c:\\file.xml"));
            // normalize text representation
            doc.getDocumentElement ().normalize ();
            System.out.println ("Root element of the doc is " +doc.getDocumentElement().getNodeName());
            NodeList agentNm = doc.getElementsByTagName("AgentNm");
            int totalAgentNm = agentNm.getLength();
            System.out.println("Total no of Agents : " + totalAgentNm);
            for(int s=0; s<agentNm.getLength() ; s++){
                Node firstPersonNode = agentNm.item(s);
                if(firstPersonNode.getNodeType() == Node.ELEMENT_NODE){
                    Element firstPersonElement = (Element)firstPersonNode;
                    PrintNodeElem(firstPersonElement,"type");
                 }//end of if clause
            }//end of for loop with s var
        static void PrintNodeElem(Element nodeElem,String elem){
         NodeList someThingList = nodeElem.getElementsByTagName(elem);
         Element ageElement = (Element)someThingList.item(0);
         NodeList textAgeList = ageElement.getChildNodes();
         System.out.println(elem+" : " +((Node)textAgeList.item(0)).getNodeValue().trim());
    }
DocumentBuilderFactory docBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docBuilderFactory.newDocumentBuilder();
Document doc=docBuilder.parse(新文件(“c:\\File.xml”);
//规范化文本表示
doc.getDocumentElement().normalize();
System.out.println(“文档的根元素是”+doc.getDocumentElement().getNodeName());
NodeList agentNm=doc.getElementsByTagName(“agentNm”);
int totalAgentNm=agentNm.getLength();
System.out.println(“代理总数:+totalAgentNm”);

对于(ints=0;s,如果您想要给定节点的属性,我建议使用XPath,这要简单得多。