2017-11-12 6 views
0

http://localhost:8000のサーバーからXMLを文字列変数に読み込もうとしています。URLから文字列変数への単純なXML文書を解析します。

XML文書のレイアウトが非常に簡単で、かつhttp://localhost:8000に指示するとき、次のように表示されます。

<result>Hello World</result> 

は、ローカルホストのURLからString型の変数にこれを解析するための簡単な方法はありますので、その例えば、私が実行した場合:コマンドラインへの出力は、単純に「Hello World」のだろうと(XMLVariableは、コンテンツが中に格納されていた文字列変数です)

System.out.println(XMLVariable) 

+0

をあなたが使用することができます[SAX Parser](https://docs.oracle.com/javase/tutorial/jaxp/sax/parsing.html) さらに簡単に、[SAXBuilder](h ttps://www.tutorialspoint.com/java_xml/java_dom_parse_document.htm) – nicovank

答えて

0

サーバーからの応答を、ある種のXMLデータ構造に解析する必要があります。

私がJavaで認識している最も簡単な方法は、dom4jを使用することです。

それは、このような単純なことができ

...

SAXReader reader = new SAXReader(); 
Document document = reader.read("http://localhost:8000/"); 
System.out.println(document.getText()); 
0

あなたは応答を解析するためStAXを使用することができます。

private Optional<String> extractResultValue(String xml) throws XMLStreamException { 
    final XMLInputFactory factory = XMLInputFactory.newInstance(); 
    final XMLEventReader reader = factory.createXMLEventReader(new StringReader(xml)); 
    while (reader.hasNext()) { 
     XMLEvent event = reader.nextEvent(); 
     if (event.isCharacters()) { 
      return Optional.ofNullable(event.asCharacters().getData()); 
     } 
    } 
    return Optional.empty(); 
} 

例コール:

extractResultValue("<Your data from server>") 
extractResultValue("<result>Hello World</result>") // Optional[Hello World] 
extractResultValue("<result></result>") // Optional.empty 
extractResultValue("<test>value</test>") // Optional[value] 
関連する問題