2014-03-18 6 views
1

안녕하세요 저는 Document Class를 사용하고 있습니다. 로컬 시스템에서 File을 읽을 때 작동 중이고 파일을 읽고 일부 URL에서 XML 문서를로드하려고 할 때 작동하지 않습니다. 내가 XML을 반환하는 서비스를하고 내가 직접 서비스 GET의 URL에서로드 할이 작업을 수행 할 수있는 방법 나는 그것을 소비 할 경우URL에서 XML 문서를 읽는 방법

private static Document loadTestDocument(String fileLocation) throws Exception { 
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
    factory.setNamespaceAware(true); 
    DocumentBuilder db = factory.newDocumentBuilder(); 
    File file = new File(fileLocation); 
    System.out.println(db.parse(file).toString()); 
    return db.parse(file); 
} 

그래서이 방법은 문서를 반환합니다. 그런 다음 파일을 찾을 수 없습니다 나는 또한 내에서 작동하지 않는 스트리밍 입력에서로드하려고 :

나는이 있지만이

File file = new File("http://someservice/getdata"); 

오류가 작동하지로했습니다.

InputStream input = new URL("http://someurl:32643/api/values").openStream(); 

오류 :

내가 어떤 도움을 내가 서비스에서 수신 된 데이터를로드 할 내가에 반환하고로 그 문서를 반환 할 이해할 수있을 것이다이를 수있는 방법을 이제
[Fatal Error] :1:1: Content is not allowed in prolog. 

내 방법.

+0

로드하는 문서는 어떻게 생겼습니까? –

+0

사실 그 XML은 – Adam

+0

입니다. 그것은 무엇처럼 보입니다. –

답변

1

다음 코드는 저에게 적합합니다.

TestXML.java

import java.net.URL; 
import javax.xml.parsers.DocumentBuilderFactory; 
import org.w3c.dom.Document; 

public class TestXML { 

    private static Document loadTestDocument(String url) throws Exception { 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     factory.setNamespaceAware(true); 
     return factory.newDocumentBuilder().parse(new URL(url).openStream()); 
    } 

    public static void main(String[] args) throws Exception { 
     Document doc = loadTestDocument("http://www.enetpulse.com/wp-content/uploads/sample_xml_feed_enetpulse_soccer.xml"); 
     System.out.println(doc); 
     doc = loadTestDocument("http://localhost/array.xml"); 
     System.out.println(doc); 
    } 
} 

array.xml

<?xml version="1.0"?> 
<ArrayOfstring xmlns:i="w3.org/2001/XMLSchema-instance" xmlns="schemas.microsoft.com/2003/10/Serialization/Arrays"> 
    <string>value1</string> 
    <string>value2</string> 
</ArrayOfstring> 

실제로 비록 속성의 xmlns를 사용/필요합니까?