2017-06-03 6 views
-1

xmlファイルを解析してトピックのIDを取得するjavaコードがあります。この文字列を整数に変換したい、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

を使用することができます。 intを解析するための

int i = DatatypeConverter.parseInt(string); 

longするための他の方法、shortBigInteger、...

+0

私はこの出力を持っています使用されている、[int i = DatatypeConverter.parseInt(string);]:id 32569981321347074 トピックのIDの終わりは:-1224736766 – cyli

+0

@cyliあなたの値は 'int'には大きすぎます。 'long i = DatatypeConverter.parseLong(string); 'を使用する必要があります。 –

+0

結果は同じ" negatif "です – cyli

0

StringIntegerに変換するには、Integerラッパーを使用してください。

Integer.valueOf(my_string); 

または、BigIntegerため、BigIntegerラッパー

BigInteger.valueOf(my_string); 
+0

私はこのメッセージ[java.lang.NumberFormatException:入力文字列: ""]のため、私のIDトピックは34302194402811904です。例えば、 – cyli

+0

'eElement.getElementsByTagName(" querytweettime ")。item(0).getTextContent();' return空の文字列親ノードの内容を印刷してみてください。 – sylvain1811

+0

私はそれを印刷しますが問題は私がBigIntegerに変換することはできません(exemple of id = 34952194402811904) – cyli

0

idtopic文字列を整数に変換することができない無効な文字が含まれていてもよい使用。

詳細な回答を得るために現在のコードの出力を提供できますか?

1

あなたは、単にjavax.xml.bind.DatatypeConverterクラスは、XMLのために必要なすべての変換を持っている

int i = Integer.parseInt(string) 
関連する問題