如何在java中从XML String中排除标记

时间:2014-06-05 09:15:34

标签: java xml http xml-parsing

我正在编写一段代码来发送和接收来自网页的数据。我在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;
        }

    }

提前致谢

5 个答案:

答案 0 :(得分:2)

在java中使用DOMParser。 进一步查看java docs

答案 1 :(得分:1)

使用XML Parser解析XML。这是Oracle教程的链接

Oracle Java XML Parser Tutorial

答案 2 :(得分:1)

只需从InputStream

传递URLConnection即可
Document doc = DocumentBuilderFactory.
    newInstance(). 
    newDocumentBuilder().
    parse(conn.getInputStream());

从那里你可以使用xPath来查询文档的内容,或者只是遍历文档模型。

请查看Java API for XML Processing (JAXP)了解详情

答案 3 :(得分:1)

我建议只使用RegEx来读取XML,然后获取您所追求的标记内容。 这简化了您需要执行的操作,并限制了其他(不必要的)库的包含。 然后在这个主题上有很多StackOverflow:Regex for xml parsingIn 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