我正在编写一段代码来发送和接收来自网页的数据。我在java中执行此操作。但是,当我收到' xml数据仍然在这样的标签之间
<?xml version='1.0'?>
<document>
<title> TEST </title>
</document>
如何在没有Java标签的情况下获取数据。
这是我试过的,该函数写入数据然后应该得到响应并在System.out.println
中使用它。
public static String User_Select(String username, String password) {
String mysql_type = "1"; // 1 = Select
try {
String urlParameters = "mysql_type=" + mysql_type + "&username=" + username + "&password=" + password;
URL url = new URL("http://localhost:8080/HTTP_Connection/index.php");
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(urlParameters);
writer.flush();
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = reader.readLine()) != null) {
System.out.println(line);
//System.out.println("Het werkt!!");
}
writer.close();
reader.close();
return line;
} catch (IOException iox) {
iox.printStackTrace();
return null;
}
}
提前致谢
答案 0 :(得分:2)
在java中使用DOMParser。 进一步查看java docs
答案 1 :(得分:1)
使用XML Parser解析XML。这是Oracle教程的链接
答案 2 :(得分:1)
只需从InputStream
URLConnection
即可
Document doc = DocumentBuilderFactory.
newInstance().
newDocumentBuilder().
parse(conn.getInputStream());
从那里你可以使用xPath来查询文档的内容,或者只是遍历文档模型。
答案 3 :(得分:1)
我建议只使用RegEx来读取XML,然后获取您所追求的标记内容。 这简化了您需要执行的操作,并限制了其他(不必要的)库的包含。 然后在这个主题上有很多StackOverflow:Regex for xml parsing和In RegEx, I want to find everything between two XML tags只提及其中的两个。
答案 4 :(得分:0)
您必须使用XML Parser,在您的情况下,完美的选择是JSoup,它会从Web中删除数据并解析XML&amp; HTML格式,它将加载数据并解析它并为您提供所需的内容,以下是它如何工作的示例:
<强> 1。来自网址的XML
String xml = Jsoup.connect("http://localhost:8080/HTTP_Connection/index.php")
.get().toString();
Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
String myTitle=doc.select("title").first();// myTitle contain now TEST
编辑: 要随你发送GET或POST参数请使用以下代码:
String xml = Jsoup.connect("http://localhost:8080/HTTP_Connection/index.php")
.data("param1Name";"param1Value")
.data("param2Name","param2Value").get().toString();
您可以使用get()
来调用HTTP GET
方法,或post()
来调用HTTP POST
方法。
<强> 2。 XML From String
您可以使用JSoup在String中解析XML数据:
String xmlData="<?xml version='1.0'?><document> <title> TEST </title> </document>" ;
Document doc = Jsoup.parse(xmlData, "", Parser.xmlParser());
String myTitle=doc.select("title").first();// myTitle contain now TEST