2017-06-03 220 views
-1

我有一個java代碼,它解析xml文件以獲取主題的id,我想將此字符串轉換爲整數,我已經使用BigInteger但它不起作用:如何將字符串值的xml文件轉換爲整數

public void topicid(){ 
     File inputFile = new File("D:\\Topic.xml"); 
     DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); 
     try { 
      DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); 
      Document doc = dBuilder.parse(inputFile); 

      doc.getDocumentElement().normalize(); 

      System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); 
      NodeList nList = doc.getElementsByTagName("top"); 

      for (int temp = 0; temp < nList.getLength(); temp++) { 
      Node nNode = nList.item(temp); 
      System.out.println("----------------------------------------------------------------------------"); 
      System.out.println("\n La requete :" + nNode.getNodeName()); 
      if (nNode.getNodeType() == Node.ELEMENT_NODE) { 
       Element eElement = (Element) nNode; 
      String idtopic=eElement.getElementsByTagName("querytweettime").item(0).getTextContent(); 
      System.out.println("l'id de la requete est:" + idtopic); 
      BigInteger idq= new BigInteger(idtopic); 

    System.out.println("l'id final de topic :" +idq); 

} 
+0

所以,你想要一個整數,或者一個BigInteger? 「它不起作用」是什麼意思?你的輸入是什麼,你的期望輸出是什麼,你的實際輸出是什麼? –

回答

0

javax.xml.bind.DatatypeConverter類有需要的XML所有轉換。

對於解析int

int i = DatatypeConverter.parseInt(string); 

還有其他方法longshortBigInteger ...

+0

我有這個輸出,當我有使用,[int i = DatatypeConverter.parseInt(string);]:id 32569981321347074 id最後的主題是:-1224736766 – cyli

+0

@cyli您的值對於int而言太大了。你需要使用'long i = DatatypeConverter.parseLong(string);' –

+0

結果是相同的「negatif」 – cyli

0

要將String轉換爲Integer,請使用Integer包裝。

Integer.valueOf(my_string); 

或者,BigInteger,使用BigInteger包裝

BigInteger.valueOf(my_string); 
+0

我有這個消息[java.lang.NumberFormatException:對於輸入字符串:「」],並且我的id主題是34952194402811904,例如 – cyli

+0

'eElement.getElementsByTagName(「querytweettime」)。item(0).getTextContent();'return一個空的字符串。嘗試打印父節點的內容。 – sylvain1811

+0

內容我打印它,但我不能將其轉換爲BigInteger的問題(例如id = 34952194402811904) – cyli

0

idtopic字符串可能包含無效字符不能被轉換爲整數。

您可以提供當前代碼的輸出以獲得更詳細的答案嗎?

1

您可以簡單地使用

int i = Integer.parseInt(string)