2017-06-03 76 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)