2017-05-29 122 views
-1

我无法读取分支号码。使用java从XML文件读取值

XML:

<NODE> 
<EMPLOYEENUMBER EMPLOYEENUMBER="1334350"/> 
<BranchNumber BRANCHCUSTOMERNUMBER ="400823482"/> 
<BR AfterImage="51" BeforeImage=""/> 
<DEALNO="6698398" BeforeImage=""/> 
<SEQ AfterImage="0" BeforeImage=""/> 
<TRAD AfterImage="PHSS" BeforeImage=""/> 
<VDATE AfterImage="2017-04-07 00:00:00.0" BeforeImage=""/> 
<CUST AfterImage="10075222" BeforeImage=""/> 
<BROK AfterImage="" BeforeImage=""/> 
<BROKCCY AfterImage="UGX" BeforeImage=""/> 
<BROKAMT AfterImage="0.0000" BeforeImage=""/> 
<PHONCI AfterImage="0" BeforeImage=""/> 
<PORT AfterImage="CSPO" BeforeImage=""/> 
<COST AfterImage="30000003" BeforeImage=""/> 
<ODATE AfterImage="2017-03-02 00:00:00.0" BeforeImage=""/> 
<DEALDATE AfterImage="2017-03-02 00:00:00.0" BeforeImage=""/> 
<DEALTIME AfterImage="06:12" BeforeImage=""/> 
<IOPER AfterImage="RAMU" BeforeImage=""/> 
<VOPER AfterImage="RAMU" BeforeImage=""/> 
<BROKCDATE AfterImage="" BeforeImage=""/> 
<CUSTCDATE AfterImage="" BeforeImage=""/> 
<PHONECDATE AfterImage="" BeforeImage=""/> 
<DEALTEXT AfterImage="" BeforeImage=""/> 
<PHONETEXT AfterImage="" BeforeImage=""/> 
<PS AfterImage="S" BeforeImage=""/> 
<PRODCODE AfterImage="XYZ" BeforeImage=""/>  
</NODE> 

的Java:

for (int temp = 0; temp < nList.getLength(); temp++) { 

    Node nNode = nList.item(temp); 

    System.out.println("\nCurrent Element :" + nNode.getNodeName()); 

    if (nNode.getNodeType() == Node.ELEMENT_NODE) { 
     Element eElement = (Element) nNode; 
     System.out.println(" EMPLOYEENUMBER: " + eElement.getAttribute("EMPLOYEENUMBER")); 
     System.out.println("BRANCHCUSTOMERNUMBER : " + eElement.getAttribute("BRANCHCUSTOMERNUMBER")); 
    } 
} 

如果我读 'BRANCHCUSTOMERNUMBER' 它是空的。

+0

你所得到的输出是正确的,因为您在其中共享有哪些是有名称为“BRANCHCUSTOMERNUMBER” –

回答

-1

您可以尝试下面的代码。

import java.io.File; 
public class ReadXMLFile { 
public static void main(String argv[]) { 
try { 
File fXmlFile = new File("logs/file.xml"); 
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
Document doc = dBuilder.parse(fXmlFile); 
doc.getDocumentElement().normalize(); 
System.out.println("Main Tag:" + doc.getDocumentElement().getNodeName()); 
NodeList nList = doc.getElementsByTagName("SubTag"); 
for (int temp = 0; temp < nList.getLength(); temp++) { 
    Node nNode = nList.item(temp); 
    System.out.println("\nCurrent Element :" + nNode.getNodeName()); 
    if (nNode.getNodeType() == Node.ELEMENT_NODE) { 
     Element eElement = (Element) nNode; 
     System.out.println("Data 1 : "+ eElement.getAttribute("ElementTagName1")); 
     System.out.println("Data 2: "+ eElement.getElementsByTagName("ElementTagName2").item(0).getTextContent()); 
     System.out.println("Data 2 : "+ eElement.getElementsByTagName("ElementTagName3")     .item(0).getTextContent()); 
     System.out.println("Data 4 : "+ eElement.getElementsByTagName("ElementTagName4").item(0).getTextContent()); 
     System.out.println("Data 5 : "+ eElement.getElementsByTagName("ElementTagName5") .item(0).getTextContent()); 
    } 
} 
} catch (Exception e) { 
e.printStackTrace(); 
}}} 
+0

1)标签名称是不相关的问题没有属性的XML。的确,只是复制粘贴这段代码而没有任何解释实际上是没有帮助的,而且2)代码格式化极差 –

+0

是Sharon, 代码对于程序员来说是可读的和可理解的,他可以根据自己的需要进行修改。抱歉格式不正确。我只是贴了它。 –

+0

如果标题是“您可以尝试下面的代码”而没有任何进一步的exaplanation,那么预计代码将“按原样”解决问题,但事实并非如此。你可以花费很少的精力来调整代码以适应特定的问题。你可以花费很少的精力来展示这个不相关的代码将如何帮助OP。你可以尽一切努力来格式化代码。你没有。我花了我更多的时间来写这个评论,而不是你粘贴这个“答案”。我只希望我可以两次下决心。 –