全网寻人接口的简单使用(GUI)

前端之家收集整理的这篇文章主要介绍了全网寻人接口的简单使用(GUI)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

利用百度全网寻人这个平台的接口,练习一下如何解析收到的xml数据包

使用开源的dom4j对收到的xml数据包进行遍历

说句题外话,在解析过程中发现结果中的寻人信息中有些脑残在利用这个平台发布虚假的寻人启事进行娱乐,对于这种人真的不知道说什么好...

  1. import java.io.IOException; 
  2. import java.io.InputStreamReader;
  3. import java.io.UnsupportedEncodingException;
  4. import java.net.HttpURLConnection;
  5. import java.net.MalformedURLException;
  6. import java.net.URL;
  7. import java.util.Iterator;
  8. import java.util.LinkedList;
  9. import java.util.List;
  10. import java.util.Scanner;
  11. import org.dom4j.*;
  12. public class DomDemo 
  13. { 
  14. 	public static LinkedList<String> name=new LinkedList<String>();
  15. 	public static LinkedList<String> sex =new LinkedList<String>();
  16. 	public static LinkedList<String> desc=new LinkedList<String>();
  17. 	public static LinkedList<String> remarks=new LinkedList<String>();
  18. 	public static LinkedList<String> phone=new LinkedList<String>();
  19. 	public static void getElementList(Element e)
  20. 	{
  21. 			List elements=e.elements();
  22. 			Info info=new Info();
  23. 			if(elements.size()==0)
  24. 			{
  25. 				
  26. 				if(e.getName().equals("name"))
  27. 				{
  28. 					name.add(e.getTextTrim());
  29. 				}
  30. 				else if(e.getName().equals("sex"))
  31. 				{
  32. 					sex.add(e.getTextTrim());
  33. 				}
  34. 				else if(e.getName().equals("desc"))
  35. 				{
  36. 					desc.add(e.getTextTrim());
  37. 				}
  38. 				else if(e.getName().equals("phone"))
  39. 				{
  40. 					phone.add(e.getTextTrim());
  41. 				}
  42. 				else if(e.getName().equals("remarks"))
  43. 				{
  44. 					remarks.add(e.getTextTrim());
  45. 				}
  46. 					
  47. 				//System.out.println(e.getTextTrim());
  48. 			}
  49. 			else
  50. 			{
  51. 				Iterator it=elements.iterator();
  52. 				
  53. 				while(it.hasNext())
  54. 				{
  55. 					Element eL=(Element) it.next();
  56. 					getElementList(eL);
  57. 				}
  58. 			}
  59. 		
  60. 	}
  61. 	public static void main(String[]args)
  62. 	{
  63. 		URL url;
  64. 		
  65. 		try
  66. 		{
  67. 			url = new URL("http://opendata.baidu.com/api.PHP?resource_id=6109&format=xml&ie=utf-8&oe=utf-8&query=%E5%9C%B0%E9%9C%87&from_mid=1&rn=10&pn=0");
  68. 			HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); 
  69. 			InputStreamReader input;
  70. 			input = new InputStreamReader(httpConn.getInputStream(),"utf-8");
  71. 			Scanner inputStream=new Scanner(input);
  72. 			StringBuffer sb;
  73. 			sb=new StringBuffer();
  74. 			while(inputStream.hasNext())
  75. 			{
  76. 				sb.append(inputStream.nextLine());
  77. 			}
  78. 			Document doc=DocumentHelper.parseText(sb.toString());
  79. 			Element root=doc.getRootElement();
  80. 			
  81. 			DomDemo.getElementList(root);
  82. 			Iterator iter=name.iterator();
  83. 			Iterator iter1=sex.iterator();
  84. 			Iterator iter2=desc.iterator();
  85. 			Iterator iter3=remarks.iterator();
  86. 			Iterator iter4=phone.iterator();
  87. 			while(iter.hasNext())
  88. 			{
  89. 				System.out.println("姓名:"+iter.next());
  90. 				System.out.println("性别:"+iter1.next());
  91. 				System.out.println("联系人:"+iter3.next());
  92. 				System.out.println("联系人电话:"+iter4.next());
  93. 				System.out.println("失踪者信息:"+iter2.next()+"\n");
  94. 			}
  95. 			//System.out.println(doc);
  96. 			//System.out.println(sb.toString());
  97. 		} catch (MalformedURLException e1) {
  98. 			// TODO Auto-generated catch block
  99. 			e1.printStackTrace();
  100. 		} catch (UnsupportedEncodingException e) {
  101. 			// TODO Auto-generated catch block
  102. 			e.printStackTrace();
  103. 		} catch (IOException e) {
  104. 			// TODO Auto-generated catch block
  105. 			e.printStackTrace();
  106. 		} catch (DocumentException e) {
  107. 			// TODO Auto-generated catch block
  108. 			e.printStackTrace();
  109. 		}
  110. 		
  111. 	
  112. 		
  113. 		
  114. 	}
  115.  
  116. }
  117.  
  118.  
  119. import java.awt.BorderLayout;
  120. import java.awt.Dimension;
  121. import java.awt.FlowLayout;
  122. import java.awt.Toolkit;
  123. import java.awt.event.ActionEvent;
  124. import java.awt.event.ActionListener;
  125. import java.io.IOException;
  126. import java.io.InputStreamReader;
  127. import java.io.UnsupportedEncodingException;
  128. import java.net.HttpURLConnection;
  129. import java.net.MalformedURLException;
  130. import java.net.URL;
  131. import java.net.URLEncoder;
  132. import java.util.Iterator;
  133. import java.util.Scanner;
  134. import javax.swing.JButton;
  135. import javax.swing.JFrame;
  136. import javax.swing.JPanel;
  137. import javax.swing.JScrollPane;
  138. import javax.swing.JTextArea;
  139. import javax.swing.JTextField;
  140. import org.dom4j.Document;
  141. import org.dom4j.DocumentException;
  142. import org.dom4j.DocumentHelper;
  143. import org.dom4j.Element;
  144. public class Gui extends JFrame implements ActionListener
  145. {
  146. 	public static final int WIDTH=500;
  147. 	public static final int HEIGHT=600;
  148. 	public static final int LINES=5;
  149. 	public static final int CHAR_PER_LINE=30;
  150. 	private JTextField inputName;
  151. 	private JTextArea textDisplay;
  152. 	private static URL url;
  153. 	HttpURLConnection httpConn;
  154. 	public Gui()
  155. 	{
  156. 		setTitle("全网寻人");
  157. 		setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);
  158. 		this.setLayout(new BorderLayout());
  159. 		setSize(WIDTH,HEIGHT);
  160. 		Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize();
  161. 		setLocation((scrSize.width-getSize().width)/2,(scrSize.height-getSize().height)/2);
  162. 		JPanel op=new JPanel();
  163. 		op.setLayout(new FlowLayout());
  164. 		inputName=new JTextField(30);
  165. 		op.add(inputName);
  166. 		JButton search=new JButton("Search");
  167. 		search.addActionListener(this);
  168. 		op.add(search);
  169. 		textDisplay=new JTextArea(LINES,CHAR_PER_LINE);
  170. 		JScrollPane scrollpane=new JScrollPane(textDisplay);
  171. 		scrollpane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  172. 		scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
  173. 		add(scrollpane,BorderLayout.CENTER);
  174. 		add(op,BorderLayout.NORTH);
  175. 		initDisplay();
  176. 		
  177. 	}
  178. 	public void initDisplay()
  179. 	{
  180. 		try 
  181. 		{
  182. 			url = new URL("http://opendata.baidu.com/api.PHP?resource_id=6109&format=xml&ie=utf-8&oe=utf-8&query="+URLEncoder.encode("地震","utf-8")+"&from_mid=1&rn=10&pn=0");
  183. 			httpConn= (HttpURLConnection) url.openConnection(); 
  184. 			InputStreamReader input;
  185. 			input = new InputStreamReader(httpConn.getInputStream(),"utf-8");
  186. 			Scanner inputStream=new Scanner(input);
  187. 			StringBuffer sb;
  188. 			sb=new StringBuffer();
  189. 			while(inputStream.hasNext())
  190. 			{
  191. 				sb.append(inputStream.nextLine());
  192. 			}
  193. 			Document doc=DocumentHelper.parseText(sb.toString());
  194. 			Element root=doc.getRootElement();
  195. 			DomDemo.getElementList(root);
  196. 			Iterator iter=DomDemo.name.iterator();
  197. 			Iterator iter1=DomDemo.sex.iterator();
  198. 			Iterator iter2=DomDemo.desc.iterator();
  199. 			Iterator iter3=DomDemo.remarks.iterator();
  200. 			Iterator iter4=DomDemo.phone.iterator();
  201. 			String content="";
  202. 			while(iter.hasNext())
  203. 			{
  204. 				content+="姓名:"+iter.next()+"\n";
  205. 				content+="性别:"+iter1.next()+"\n";
  206. 				content+="联系人:"+iter3.next()+"\n";
  207. 				content+="联系人电话:"+iter4.next()+"\n";
  208. 				content+="失踪者信息:"+iter2.next()+"\n\n";
  209. 			}
  210. 			textDisplay.setText(content);
  211. 			
  212. 		}
  213. 		catch (MalformedURLException e) 
  214. 		{
  215. 			// TODO Auto-generated catch block
  216. 			e.printStackTrace();
  217. 		} 
  218. 		catch (UnsupportedEncodingException e) {
  219. 			// TODO Auto-generated catch block
  220. 			e.printStackTrace();
  221. 		} catch (IOException e) {
  222. 			// TODO Auto-generated catch block
  223. 			e.printStackTrace();
  224. 		} catch (DocumentException e) {
  225. 			// TODO Auto-generated catch block
  226. 			e.printStackTrace();
  227. 		}
  228. 	}
  229. 	public static void main(String[]args)
  230. 	{
  231. 		Gui gui=new Gui();
  232. 		gui.setVisible(true);
  233. 	}
  234. 	
  235. 	public void actionPerformed(ActionEvent e) 
  236. 	{
  237. 		String actionCommand=e.getActionCommand();
  238. 		if(actionCommand.equals("Search"))
  239. 		{
  240. 			try 
  241. 			{
  242. 				String findName=URLEncoder.encode(inputName.getText().trim(),"utf-8");
  243. 				url = new URL("http://opendata.baidu.com/api.PHP?resource_id=6109&format=xml&ie=utf-8&oe=utf-8&query="+findName+"&from_mid=1&rn=10&pn=0");
  244. 				httpConn= (HttpURLConnection) url.openConnection(); 
  245. 				InputStreamReader input;
  246. 				input = new InputStreamReader(httpConn.getInputStream(),"utf-8");
  247. 				Scanner inputStream=new Scanner(input);
  248. 				StringBuffer sb;
  249. 				sb=new StringBuffer();
  250. 				while(inputStream.hasNext())
  251. 				{
  252. 					sb.append(inputStream.nextLine());
  253. 				}
  254. 				Document doc=DocumentHelper.parseText(sb.toString());
  255. 				Element root=doc.getRootElement();
  256. 				DomDemo.clear();
  257. 				DomDemo.getElementList(root);
  258. 				Iterator iter=DomDemo.name.iterator();
  259. 				Iterator iter1=DomDemo.sex.iterator();
  260. 				Iterator iter2=DomDemo.desc.iterator();
  261. 				Iterator iter3=DomDemo.remarks.iterator();
  262. 				Iterator iter4=DomDemo.phone.iterator();
  263. 				String content="";
  264. 				while(iter.hasNext())
  265. 				{
  266. 					content+="姓名:"+iter.next()+"\n";
  267. 					content+="性别:"+iter1.next()+"\n";
  268. 					content+="联系人:"+iter3.next()+"\n";
  269. 					content+="联系人电话:"+iter4.next()+"\n";
  270. 					content+="失踪者信息:"+iter2.next()+"\n\n";
  271. 				}
  272. 				textDisplay.setText(content);
  273. 			}
  274. 			catch (UnsupportedEncodingException e1) 
  275. 			{
  276. 				
  277. 			} catch (MalformedURLException e1) 
  278. 			{
  279. 				// TODO Auto-generated catch block
  280. 				e1.printStackTrace();
  281. 			} catch (DocumentException e1) {
  282. 				// TODO Auto-generated catch block
  283. 				e1.printStackTrace();
  284. 			} catch (IOException e1) {
  285. 				// TODO Auto-generated catch block
  286. 				e1.printStackTrace();
  287. 			}
  288. 			
  289. 		}
  290. 		
  291. 	}
  292. }

  293.  
  294.  
  295.  
  296.  
  297.  

猜你在找的XML相关文章