2017-05-29 123 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。你可以盡一切努力來格式化代碼。你沒有。我花了我更多的時間來寫這個評論,而不是你粘貼這個「答案」。我只希望我可以兩次下決心。 –