如何使用Java从URL读取/获取XML文件?

如何使用Java从URL读取/获取XML文件?,java,xml,xml-parsing,Java,Xml,Xml Parsing,我想从URL中读取XML文件并对其进行解析。如何在Java中做到这一点???您可以使用它来支持这一点 URL url = new URL("yoururl"); BufferedReader in = new BufferedReader( new InputStreamReader( url.openStream())); xSteamObj.fromXML(in);//return parsed object 您可以使用

我想从URL中读取XML文件并对其进行解析。如何在Java中做到这一点???

您可以使用它来支持这一点

URL url = new URL("yoururl");
BufferedReader in = new BufferedReader(
                new InputStreamReader(
                url.openStream()));



xSteamObj.fromXML(in);//return parsed object
您可以使用它来支持这一点

URL url = new URL("yoururl");
BufferedReader in = new BufferedReader(
                new InputStreamReader(
                url.openStream()));



xSteamObj.fromXML(in);//return parsed object

从URL读取与任何其他输入源都不同。有几种不同的Java工具用于XML解析

从URL读取与任何其他输入源不同。有几种不同的Java工具用于XML解析

两个步骤:

  • 从服务器获取字节
  • 为它创建一个合适的XML源,甚至可能是一个转换器
  • 将两者连接起来,例如获取一个DOM进行进一步处理。

    两个步骤:

  • 从服务器获取字节
  • 为它创建一个合适的XML源,甚至可能是一个转换器
  • 将两者连接起来,例如获取一个DOM进行进一步处理。

    我使用JDOM:

    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.input.*;
    
    StringBuilder responseBuilder = new StringBuilder();
    try {
     // Create a URLConnection object for a URL
     URL url = new URL( "http://127.0.0.1" );
     URLConnection conn = url.openConnection();
     HttpURLConnection httpConn;
    
     httpConn = (HttpURLConnection)conn;
     BufferedReader rd = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
     String line;
    
     while ((line = rd.readLine()) != null)
     {
      responseBuilder.append(line + '\n');
     }
    }
    catch(Exception e){
     System.out.println(e);
    }
    
    SAXBuilder sb = new SAXBuilder();
    Document d = null;
    try{
        d = sb.build( new StringReader( responseBuilder.toString() ) );
    }catch(Exception e){
        System.out.println(e);
    }
    
    当然,您可以剪切整个读取URL到字符串,然后在字符串上放置一个字符串读取器,但是我从两个不同的区域剪切/粘贴。所以这更简单。

    我使用JDOM:

    import org.jdom.Document;
    import org.jdom.Element;
    import org.jdom.input.*;
    
    StringBuilder responseBuilder = new StringBuilder();
    try {
     // Create a URLConnection object for a URL
     URL url = new URL( "http://127.0.0.1" );
     URLConnection conn = url.openConnection();
     HttpURLConnection httpConn;
    
     httpConn = (HttpURLConnection)conn;
     BufferedReader rd = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
     String line;
    
     while ((line = rd.readLine()) != null)
     {
      responseBuilder.append(line + '\n');
     }
    }
    catch(Exception e){
     System.out.println(e);
    }
    
    SAXBuilder sb = new SAXBuilder();
    Document d = null;
    try{
        d = sb.build( new StringReader( responseBuilder.toString() ) );
    }catch(Exception e){
        System.out.println(e);
    }
    

    当然,您可以剪切整个读取URL到字符串,然后在字符串上放置一个字符串读取器,但是我从两个不同的区域剪切/粘贴。因此,这更容易。

    这是使用流式解析器的一个很好的候选者:
    StAX被设计成串行处理XML流;与一次就需要整个文档模型的DOM API相比。StAX还假设内容是动态的,而XML的本质并不真正为人所知。StAX用例也包括处理管道

    这是使用流式解析器的一个很好的候选者:
    StAX被设计成串行处理XML流;与一次就需要整个文档模型的DOM API相比。StAX还假设内容是动态的,而XML的本质并不真正为人所知。StAX用例也包括处理管道

    可能重复的可能重复的感谢。你能列出其中一些吗?这是一个很好的列表:。我在Xerces方面很成功,但我确实尝试了很多。谢谢。你能列出其中一些吗?这里是一个很好的列表:。我在Xerces方面取得了很好的成功,但我确实尝试了很多。所有XML绑定/序列化库都支持此用例。签出:@Blaise谢谢,@Srivigneshwar检查Blaise提供的链接很有帮助。什么是
    xSteamObj
    ?所有XML绑定/序列化库都支持此用例。签出:@Blaise谢谢,@Srivigneshwar检查Blaise提供的链接很有帮助。什么是
    xSteamObj